Voici une requête SQL qui devrait vous aider à démarrer (en supposant que vous souhaitiez la calculer par colonne) :
create table normalize as
select
(RT - min(RT)over()) / (max(RT)over() - min(RT)over()) * 0.8 + 0.1 as RT_norm
from test;
J'ai testé cette requête dans sqlite3, pas MySQL. Ce n'est pas nécessairement optimal, mais suit intuitivement la formule. Remarquez, le over
transforme les fonctions d'agrégation min/max en fonctions de fenêtre, ce qui signifie qu'elles regardent toute la colonne, mais le résultat est répété sur chaque ligne.
À faire
Vous devrez toujours :
- envoyer la requête MySQl via Python
- répéter le même code pour chaque colonne
- attribuez un nom à chaque colonne
- attribuer la table résultante à un schéma (le plus probable)
- gérer la division par 0 dans le cas où une colonne max et min sont égales