если вы проверяете ваш выбор с min
и max
значениями
SELECT Age, MAX(Age), MIN(Age)
FROM X
group by age;
вы получите
Age Min max
1 1 1
3 3 3
5 5 5
25 25 25
32 32 32
102 102 102
109 109 109
111 111 111
Так что результат функции не должен удивлять
(OriginalValues - MinNumber)/(MaxNumber - MinNumber)
(1 - 1) / (1 - 1) -- for the first Row
(2 - 2) / (2 - 2) -- for the second Row
и т. Д.
Вы можете использовать аналитическую функцию для получения минимального и максимального значения
SELECT Age
, min(age) over () as min_val
, max(age) over () as max_val
FROM X
group by age;
результат
Age min max
1 1 111
3 1 111
5 1 111
25 1 111
32 1 111
102 1 111
109 1 111
111 1 111
вывыберите кулон похож на
select age,
NORMALIZATION(age,max_val,min_val)
from ( SELECT Age
, min(age) over () as min_val
, max(age) over () as max_val
FROM X
group by age
);