[英]SQL to add rows in result when condition is met
當獲得徽章代碼組合時,我需要在結果中添加新行。
user badge_code
------- ----------
Jim 2
George 4
Jim 5
Mike 2
例如,如果用戶像 Jim 一樣獲得了 badg_code #2 和 #5,那么包括另一行——他們已經根據該組合達到了一個新的 badg_code #10。
user badge_code
------- ----------
Jim 2
George 4
Jim 5
Mike 2
Jim 10
我懷疑我需要一個聯合來添加行,但不能根據每個用戶前一行的條件來解決這個問題。 我正在使用 SQL Server。
您可以使用union all
:
select user, badge_code
from t
union all
select user, 10
from t
where badge_code in (2, 5)
group by user
having count(*) = 2;
此公式假設用戶只獲得一次徽章代碼。 如果他們可以多次獲得相同的收入,則使用count(distinct badge_code) = 2
代替。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.