2012-11-06 191 views
1

我有一個返回每個事項標識一個CNT1和CNT2一個SQL,而列測試條件「POSA」不同條件case語句

這將返回以下根據需要:

事項標識| CNT1 | CNT2

我想爲每個CASE語句添加另一個條件,用於測試同一個表中的另一列「S」是否不同。下面的代碼片段:

SELECT Event_ID, 
sum 
(CASE WHEN POSA IN ('SX', 'DX') THEN 1 
    ELSE 0 
END) 
AS cnt1, 
sum 
(CASE 
    WHEN POSA IN ('SP', 'DP') THEN 1 
    ELSE 0 
END) AS cnt2 


FROM Station_Processed_Info GROUP BY EVENT_ID; 
+1

一些示例數據將使其更清楚。 – Laurence

+0

是否有可能在單個EVENT_ID組中有多個S值?另外,在查找S的重複值時,是否只想查看當前的EVENT_ID組或整個表格? – JohnLBevan

+0

John,在Event_ID組中可能有多個S值,但條件是每個S應該是不同的,關於第二部分,「獨立性」應該只在同一個Event_ID組內。非常感謝。 – vsstage

回答

1
SELECT Event_ID, 
SUM(CASE 
    WHEN POSA IN ('SX', 'DX') THEN 1 
    WHEN DISTINCT("S") THEN something 
    ELSE 0 END) AS cnt1, 
SUM (CASE 
    WHEN POSA IN ('SP', 'DP') THEN 1 
    WHEN DISTINCT("S") THEN something 
    ELSE 0 END) AS cnt2  
FROM Station_Processed_Info GROUP BY EVENT_ID; 
+0

您可以將多個WHEN子句添加到CASE語句中。 – Shawn