Możesz użyć CASE
instrukcja z funkcją agregującą. To w zasadzie to samo, co PIVOT
funkcja w niektórych 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