[英]How do I apply a condition to a grouped query in T-SQL?
我試圖找出最有效的方法,使用T-SQL按 ItemId 對表中的項目進行分組,select 基於 Supported 列中的位值(或最后一個用於分組,如果沒有一個被標記為支持)
桌子
ItemId | Date | Supported
===================================
1 | 1/1/2001 | 0
1 | 1/1/2002 | 1
1 | 1/1/2003 | 0
2 | 1/1/2001 | 0
2 | 1/1/2002 | 0
2 | 1/1/2003 | 0
偽代碼
SELECT MAX(Date WHERE Supported=1 (Or Last)) FROM Table GROUP BY ItemId
期望的結果
ItemId | Date
======================
1 | 1/1/2002
2 | 1/1/2003
您可以將coalesce()
與group by
一起使用:
select itemid,
coalesce( min(case when supported = 1 then date end),
max(date)
)
from t
group by itemid;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.