表1:
| Col_1| Col_2| Col_3|
| --|--|--|
| 一|苹果| 100 |
| 一|苹果| 100 |
| 一|苹果| 56 |
| 一|苹果| 44 |
| B|香蕉| 100 |
| C| cucumber | 93 |
| C| cucumber | 7 |
我想使用一个case when语句将Col 1作为“good”或“bad”分类到新列中。我提出了以下问题:
SELECT DISTINCT
Col_1
, CASE WHEN Col_3 = 100 THEN 'good'
ELSE 'bad'
END AS STATUS
FROM TABLE_1
这导致表2:
| Col_1|地位|
| --|--|
| 一|好|
| 一|坏|
| B|好|
| C|坏|
我该如何解决这个问题,如果A既是好的,也是坏的,它只会接受坏的状态?我希望表3是我的结果
表3:
| Col_1|地位|
| --|--|
| 一|坏|
| B|好|
| C|坏|
3条答案
按热度按时间ckocjqey1#
像这样的,也许?
样本数据:
查询方式:
或者更简单
rkkpypqq2#
您可以通过使用min()来实现这一点
它将采用col_3的最小值,并且当有< 100的记录时将返回“bad”
n3schb8v3#
可以使用GROUP BY和聚合函数
| COL_1|地位|
| --|--|
| 一|坏|
| B|好|
| C|坏|
fiddle