sql查询将最小-最大标准化应用于sql server 2008中的不同列?

use*_*347 3 normalization sql-server-2008

我有不同的列,其中包含年龄、性别等 int 值。我希望通过应用最小-最大归一化将这些列值替换为 0-1 范围值,以便我可以将其加载到快速小数并应用 k 均值。

请告诉我这个的sql查询?

gbn*_*gbn 6

计算此值的查询如下

SELECT
    1.00*(Age-MinAge)/AgeRange,
    1.00*(Gender-MinGender)/GenderRange,
FROM
    (
    SELECT
       Age,
       MIN(Age) OVER () AS MinAge,
       MAX(Age) OVER () - MIN(Age) OVER () AS AgeRange,
       Gender,
       MIN(Gender) OVER () AS MinGender,
       MAX(Gender) OVER () - MIN(Gender) OVER () AS GenderRange,
    FROM
       MyTable
    ) X
Run Code Online (Sandbox Code Playgroud)

您可以使用它来填充新表或新列等

  • X 是派生表的必需别名。删除“X”,看看会发生什么 (4认同)