【发布时间】:2019-11-06 16:09:18
【问题描述】:
我有这样的数据:
+-----+--------+--------+--------+
| ID | score1 | score2 | score3 |
+-----+--------+--------+--------+
| 123 | 14 | 561 | 580 |
| 123 | 626 | 771 | 843 |
| 123 | 844 | 147 | 904 |
| 456 | 922 | 677 | 301 |
| 456 | 665 | 578 | 678 |
| 456 | 416 | 631 | 320 |
+-----+--------+--------+--------+
我要做的是创建另一列,提供三者中得分最高的列。请记住,我不是在寻找值是什么,而是在寻找列的名称。因此,最终输出将如下所示:
+-----+--------+--------+--------+------------+
| ID | score1 | score2 | score3 | high_score |
+-----+--------+--------+--------+------------+
| 123 | 14 | 561 | 580 | score3 |
| 123 | 626 | 771 | 843 | score3 |
| 123 | 844 | 998 | 904 | score2 |
| 456 | 922 | 677 | 301 | score1 |
| 456 | 665 | 578 | 678 | score3 |
| 456 | 416 | 631 | 320 | score1 |
+-----+--------+--------+--------+------------+
我一直在尝试进行涉及RANK() 的查询,涉及PARTITION BY,但它没有给我我正在寻找的东西,我被正式卡住了。
【问题讨论】:
标签: sql amazon-redshift partitioning