2016-04-03 2 views
0

У меня есть таблица, в которой я беру каждый код ошибки вычисления. У меня есть как внутренние (20k коды ошибок) и внешние (60K коды ошибок) я подсчитать общее число кодов неисправностей на основе отSQL Query GROUP LIKE

Вот что мой блок данных выглядит следующим образом:

FaultCode Count 
20001  200 
20002  100 
60004  300 
60034  80 

Следующая код предоставит мне COUNT для каждого кода FaultCode.

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

Однако, я хочу, чтобы получить SUM для FaultCode LIKE% '60-м ИЛИ FaultCodes LIKE '20%', например:

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 Почему? ОП запрашивает счет. – jpw

+0

'Я хочу получить SUM для FaultCode' ... Собственно, вы правы. Сожалею. Меня смутил его первый стол в вопросе. Эта таблица не является исходными исходными данными, это пример вывода его текущего запроса. Ваш запрос обрабатывает исходные исходные данные. –