give IT a try

プログラミング、リモートワーク、田舎暮らし、音楽、etc.

DISTINCTされた結果の件数を求めるSQL

DISTINCTされた結果の件数、つまり種類の数を求めるSQLは以下のようになる。
※サンプルコードはSQL Serverの場合

create table #temp(
  col1 int,
  col2 varchar(2)
)
insert into #temp values (1, 'a')
insert into #temp values (1, 'a')
insert into #temp values (1, 'b')
insert into #temp values (2, 'a')
insert into #temp values (2, 'b')
insert into #temp values (2, 'b')
insert into #temp values (2, 'c')

select col1, count(distinct col2) 
from #temp
group by col1
order by col1

drop table #temp


実行結果

col1  count
----------
1     2
2     3