0

SQL クエリの結果を複数の列に表示する方法を作成する必要があります。SQLはかなり基本的なもので、特定のタイプの各エントリの数です。

したがって、SQLは次のようなものです

Select count(distinct(id)) from Table where id_type = a

Select count(distinct(id)) from Table where id_type = b

Select count(distinct(id)) from Table where id_type = c

これらを 1 行のテーブルに表示して、カスタム名の列の下に各タイプの数を表示します。

私の SQL はかなりまばらなので、追加の外部情報はいつでも歓迎します。

4

1 に答える 1

2

データを行から列にピボットする必要があるようです。これが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
于 2013-01-14T10:50:10.153 に答える