簡體   English   中英

SQL 對於 A 列中的每個唯一值,對 B 列求和。如果總和大於 50,則創建列 C 並添加值“Y”,否則添加“N”

[英]SQL For each unique value in Column A, sum Column B. If sum is greater than 50, create Column C and add value “Y”, else “N”

看起來很簡單,但我似乎無法理解它。 我有下表。

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

對於“ID”列中的每個唯一值,我想要“總”列的總和。 如果總和大於 50,則創建新列“結果”並添加值“Y”,否則添加值“N”。

結果應該是這樣的。 是的,我想保留每一行。

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

我被困住了......

使用 window 函數:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM