データを行から列にピボットする必要があるようです。これがMySQLの場合である場合、CASE
このデータ変換を実行するには、式を含む集計関数を使用する必要があります。
Select
count(distinct case when id_type = 'a' then id end) TotalA,
count(distinct case when id_type = 'b' then id end) TotalB,
count(distinct case when id_type = 'c' then id end) TotalC
from Table
または、何らかの理由で個別のクエリを引き続き使用する場合は、を使用してUNION ALL
から、データを列にローテーションできます。
select
max(case when col = 'A' then TotalCount end) TotalA,
max(case when col = 'B' then TotalCount end) TotalB,
max(case when col = 'C' then TotalCount end) TotalC
from
(
Select count(distinct(id)) TotalCount, 'A' Col
from Table
where id_type = 'a'
union all
Select count(distinct(id)) TotalCount, 'B' Col
from Table
where id_type = 'b'
union all
Select count(distinct(id)) TotalCount, 'C' Col
from Table
where id_type = 'c'
) src