SQLite3のcountとdistinct

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);