2016-04-03 12 views
0

各計算フォルトコードをキャプチャしたテーブルがあります。SQLクエリGROUP LIKE

FaultCode Count 
20001  200 
20002  100 
60004  300 
60034  80 

次の:私はここで

をオフに基づいて故障コードの合計数をカウントした(60Kフォルトコード)(20K故障コード)の内部と外部の両方持っていることは私のデータブロックは、次のようになりますコードは各FaultCodeのCOUNTを私に与えます。

FaultCode  COUNT 
60k   380 
20K   300 

任意の提案:

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 '20%LIKE FaultCodes' のSUMを取得したいですか?

+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

'COUNT'の代わりに' SUM'が必要です... –

+0

@VladimirBaranovなぜですか? OPはカウントを求める。 – jpw

+0

「FaultCodeのSUMを取得したい」と...実際、あなたは正しいです。ごめんなさい。私は質問の彼の最初のテーブルに混乱していた。そのテーブルはソースの生データではなく、現在のクエリのサンプル出力です。クエリが元の生データを処理しています。 –