2016-04-03 73 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 ...实际上,你是对的。抱歉。我在这个问题中被他的第一张表迷惑了。该表不是源原始数据,它是当前查询的示例输出。您的查询正在处理原始原始数据。 –