NULLを含むとき、COUNT(*)とCOUNT(列名)では結果が異なります。
Col1 |
---|
10 |
(NULL) |
50 |
(NULL) |
40 |
このようなTBL1テーブルを例にします。
COUNT(*)はNULLを含めてカウントします。
SELECT COUNT(*) FROM TBL1
count
-----
5
COUNT(列名)はNULLを含めません。
SELECT COUNT(COL1) FROM TBL1
count
-----
3
『SQL ゼロからはじめるデータベース操作』によると、
集約関数はNULLを除外する。ただし「COUNT(*)」は例外的にNULLを除外しない。
ということでした。