group by—列a中每个唯一值的sql,列b的sum如果总和大于50,则创建列c并添加值“y”,否则添加值“n”

xoshrz7s  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(308)

似乎很简单,但我似乎无法控制自己的想法。我有下表。

ID        Total
1         20
1         30
1         30
2         10
2         10

对于“id”列中的每个唯一值,我需要“total”列的和。如果总和大于50,则创建新列“result”并添加值“y”,否则添加值“n”。
结果应该是这样的。是的,我想保留每一排。

ID        Total        Result
 1         20           Y
 1         30           Y
 1         30           Y
 2         10           N
 2         10           N

我被困住了。。。。

m528fe3b

m528fe3b1#

使用窗口功能:

select t.*,
       (case when sum(total) over (partition by id) >= 50 then 'Y' else 'N' end)
from t;

相关问题