Sql 对表或查询进行加密以在红移(可能是union all查询)中取消填充数据。 select t.*, (case greatest(score1, score2, score3) when score1 then 's

Sql 对表或查询进行加密以在红移(可能是union all查询)中取消填充数据。 select t.*, (case greatest(score1, score2, score3) when score1 then 's,sql,amazon-redshift,Sql,Amazon Redshift,对表或查询进行加密以在红移(可能是union all查询)中取消填充数据。 select t.*, (case greatest(score1, score2, score3) when score1 then 'score1' when score2 then 'score2' when score3 then 'score3' end) as high_score_name,

对表或查询进行加密以在红移(可能是union all查询)中取消填充数据。
select t.*,
       (case greatest(score1, score2, score3)
             when score1 then 'score1'
             when score2 then 'score2'
             when score3 then 'score3'
        end) as high_score_name,
       greatest(score1, score2, score3) as high_score
from t;
+------+----------+----------+----------+--------------+
|  ID  |  score1  |  score2  |  score3  |  high_score  |
+------+----------+----------+----------+--------------+
|  123 |       14 |      561 |      580 |  score3      |
|  456 |      626 |      771 |      843 |  score3      |
|  789 |      844 |      998 |      904 |  score2      |
|  111 |      922 |      677 |      301 |  score1      |
|  222 |      665 |      578 |      678 |  score3      |
|  333 |      416 |      631 |      320 | score2       |
+------+----------+----------+----------+--------------+
+------+----------+----------+----------+--------------+--------------+
|  ID  |  score1  |  score2  |  score3  |  high_score  | second_score |
+------+----------+----------+----------+--------------+--------------+
|  123 |       14 |      561 |      580 |  score3      | score2       |
|  456 |      626 |      771 |      843 |  score3      | score2       |
|  789 |      844 |      998 |      904 |  score2      | score3       |
|  111 |      922 |      677 |      301 |  score1      | score2       |
|  222 |      665 |      578 |      678 |  score3      | score1       |
|  333 |      416 |      631 |      320 | score2       | score1       |
+------+----------+----------+----------+--------------+--------------+
select (case when score1 not in (least(score1, score2, score3), greatest(score1, score2, score3))
             then 'score1'
             when score1 not in (least(score1, score2, score3), greatest(score1, score2, score3))
             then 'score2'
             when score1 not in (least(score1, score2, score3), greatest(score1, score2, score3))
             then 'score3'
        end) as second_score
id    score    score_number
123      14         1
123     561         2
123     580         3
. . .  
#   id  high_score_label    second_score_label  high_score  second_score
1   111 score1              score2              922         677
2   123 score3              score2              580         561
3   222 score3              score1              678         665
4   333 score2              score1              631         416
5   456 score3              score2              843         771
6   789 score2              score3              998         904