このクエリをどのように記述すればよいか疑問に思っています。
この実際の構文は間違っていることは承知していますが、私が何を望んでいるかを理解するのに役立ちます。
これははるかに大きなクエリの一部であるため、この形式で必要です。
SELECT distributor_id,
COUNT(*) AS TOTAL,
COUNT(*) WHERE level = 'exec',
COUNT(*) WHERE level = 'personal'
これらすべてを 1 つのクエリで返す必要があります。
また、1 行に記述する必要があるため、次の例は機能しません。
'SELECT distributor_id, COUNT(*)
GROUP BY distributor_id'
ベストアンサー1
CASE
集計関数を含むステートメントを使用できます。これは基本的にPIVOT
、一部の RDBMS の関数と同じものです。
SELECT distributor_id,
count(*) AS total,
sum(case when level = 'exec' then 1 else 0 end) AS ExecCount,
sum(case when level = 'personal' then 1 else 0 end) AS PersonalCount
FROM yourtable
GROUP BY distributor_id