DOT NOTES

Twitter:@dot_not_ GitHub:@ogrew

重複を除いてレコード数をCOUNTするSQL

あるテーブルの特定のカラムで重複なくカウントしたい場合

SELECT COUNT(*) FROM  (SELECT DISTINCT level FROM player);

みたいにサブクエリとして書いていたが、

SELECT COUNT(DISTINCT level) FROM player;

みたいにかけることを知った。 こちらのほうがスマートだし、わかりやすい。

ただし多くのRDBMSでここのマルチカラムは許容されていない。 その場合は素直にサブクエリにして対応するのが吉。