SQLite3は DISTINCT で重複除外した結果をCOUNTで数えることが できたりできなかったり。具体的にはDISTINCTで複数のカラムを 指定すると文法エラーでCOUNTできなくなる。
select distinct pref from sometable; select count(distinct pref) from sometable;
これらはOK。だが、
select distinct pref,city from sometable; select count(distinct pref,city) from sometable; Error: near "distinct": syntax error
こんな風に文法エラーになってcountできない。なんでや。
仕方ないので、distinctのほうをsubqueryにする。
select count(*) from (select distinct pref,city from sometable);