如何规范化配置单元中的列?

时间:2017-07-12 13:40:41

标签: sql hive hiveql normalize

我试图规范化配置单元中的列,这意味着我必须使列中的每个值除以该列中的最大值。例如:我有一张桌子X:

A   B   C   D
1  0.1  3  0.2
2  0.2  4  0.5
3  0.3  5  0.2

我想规范化列C,请求的表Y是:

A   B    C    D
1  0.1  0.6  0.2
2  0.2  0.8  0.5
3  0.3   1   0.2

我不知道如何编写SQL来表示整列的最大值。

2 个答案:

答案 0 :(得分:6)

max窗口函数

select a
      ,b
      ,c / max(c) over () as c
      ,d

from x
+---+-----+-----+-----+
| a |  b  |  c  |  d  |
+---+-----+-----+-----+
| 1 | 0.1 | 0.6 | 0.2 |
| 2 | 0.2 | 0.8 | 0.5 |
| 3 | 0.3 | 1   | 0.2 |
+---+-----+-----+-----+

答案 1 :(得分:0)

试试这个

选择a,b,c /(从X中选择MXA(C)),d从X