2016-04-03 99 views
0

我有一個表格,用於捕獲每個計算錯誤代碼。我有內部(20K故障碼)和外部(60K故障代碼)我是根據故障碼的總數關SQL Query GROUP LIKE

這裏算我的數據塊的樣子:

FaultCode Count 
20001  200 
20002  100 
60004  300 
60034  80 

以下代碼會給我每個FaultCode的COUNT。

SELECT FaultCode, COUNT(FaultCode) AS COUNT 
FROM RmaSummary 
WHERE ClosedTime IS NULL AND (FaultCode LIKE '60%' OR FaultCode LIKE '20%') 
GROUP BY FaultCode 

但是,我想要得到的faultcode LIKE '60% 'OR LIKE '20%FaultCodes' 總和,例如:

FaultCode  COUNT 
60k   380 
20K   300 

有什麼建議?

+2

您應該使用您正在使用的特定數據庫應用程序標記問題,因爲它可能會影響答案。 – jpw

回答

1

可以使用case表達式組值:

SELECT 
    CASE 
     WHEN FaultCode LIKE '60%' THEN '60K' 
     WHEN FaultCode LIKE '20%' THEN '20K' 
    END AS FaultCode 
    , COUNT(FaultCode) AS COUNT 
FROM RmaSummary 
WHERE ClosedTime IS NULL AND (FaultCode LIKE '60%' OR FaultCode LIKE '20%') 
GROUP BY 
    CASE 
     WHEN FaultCode LIKE '60%' THEN '60K' 
     WHEN FaultCode LIKE '20%' THEN '20K' 
    END 

如果你不想重複case表達您可以在部分移動到一個派生表或公共表表達式(如果你的數據庫支持那)。

+0

應該有'SUM'而不是'COUNT' ... –

+0

@VladimirBaranov爲什麼? OP要求計數。 – jpw

+0

'我想獲得FaultCode的SUM ...實際上,你是對的。抱歉。我在這個問題中被他的第一張表迷惑了。該表不是源原始數據,它是當前查詢的示例輸出。您的查詢正在處理原始原始數據。 –