Ето една SQL заявка, която трябва да ви помогне да започнете (ако приемем, че искате да я изчислите по колона):
create table normalize as
select
(RT - min(RT)over()) / (max(RT)over() - min(RT)over()) * 0.8 + 0.1 as RT_norm
from test;
Тествах тази заявка в sqlite3, не в MySQL. Не е непременно оптимално, но интуитивно следва формулата. Забележете, over
превръща min / max агрегатните функции в прозоречни функции, което означава, че разглеждат цялата колона, но резултатът се повтаря на всеки ред.
Задача
Все още трябва да:
- изпратете MySQl заявката чрез Python
- повторете същия код за всяка колона
- дайте име на всяка колона
- присвояване на получената таблица на схема (най-вероятно)
- манипулатор, разделен с 0, в случай че max и min в колона са равни