簡體   English   中英

在多列中出現特定字符串的計數

[英]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_StatusL2_StatusL3_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.

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