[英]Count of a occurrence of specific string in multiple columns
我有一張如下表:
Auction_Date Auction_No L1_Status L2_Status L3_Status
2022-08-01 AUC00123 Acc Rej Acc
2022-08-01 AUC00122 Rej Acc Acc
2022-08-02 AUC00223 Acc Acc Acc
2022-08-12 AUC00221 Rej Rej Acc
現在我想要另一列,當 Status = 'Acc' 時,將顯示L1_Status
、 L2_Status
和L3_Status
的計數。 所以結果表就像
Auction_Date Auction_No L1_Status L2_Status L3_Status Count_Acc
2022-08-01 AUC00123 Acc Rej Acc 2
2022-08-01 AUC00122 Rej Acc Acc 2
2022-08-02 AUC00223 Acc Acc Acc 3
2022-08-12 AUC00221 Rej Rej Acc 1
我知道一種方法可能是UNPIVOT
最后 3 個字段,然后獲取Acc
計數。 然后這個UNPIVOT
表必須在GROUP BY Auction_No
之后與上表連接才能獲得Count_Acc
字段。
或者
SELECT Auction_No, SUM(CASE WHEN L1_Status = 'Acc' THEN 1 ELSE 0 END) +
SUM(CASE WHEN L2_Status = 'Acc' THEN 1 ELSE 0 END) +
SUM(CASE WHEN L3_Status = 'Acc' THEN 1 ELSE 0 END) AS Count_Acc
FROM Table GROUP BY Auction_No
有沒有更好的方法?
你的方法已經很好了,但我有一個更短的方法:)
SELECT Auction_No
, SUM(IIF(L1_Status='Acc',1,0) + IIF(L1_Status='Acc',1,0) + IIF(L1_Status = 'Acc',1,0)) as Count_Acc
FROM Table GROUP BY Auction_No
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.