今回は、COUNT関数について解説してきたいと思います。
使い方
レコード数が知りたい場合
以下 t_test というテーブルが、このようなデータが登録されていたとします。
COL1 | COL2 | COL3 | COL4 |
A | 1 | 1 | 1 |
B | 1 | 1 | 1 |
B | 1 | 1 | 1 |
B | 1 | 1 | 1 |
select count(*) from t_test; --t_testはテーブル名です。
結果は、4が返ってきます。
条件付きレコード数が知りたい場合
以下 t_test というテーブルが、このようなデータが登録されていたとします。
COL1 | COL2 | COL3 | COL4 |
A | 1 | 1 | 1 |
B | 1 | 1 | 1 |
B | 1 | 1 | 1 |
B | 1 | 1 | 1 |
select count(*) from t_test WHERE COL1 = 'A'; --t_testはテーブル名です。
結果は、1が返ってきます。
重複した行を除外してレコード数が知りたい場合
以下 t_test というテーブルが、このようなデータが登録されていたとします。
COL1 | COL2 | COL3 | COL4 |
A | 1 | 1 | 1 |
B | 1 | 1 | 1 |
B | 1 | 1 | 1 |
B | 1 | 1 | 1 |
select count(distinct col1) from t_test; --t_testはテーブル名です。
結果は、2が返ってきます。
GROUP BY での使い方
カラム毎の種類が知りたい場合
以下 t_test というテーブルが、このようなデータが登録されていたとします。
COL1 | COL2 | COL3 | COL4 |
A | 1 | 1 | 1 |
B | 1 | 1 | 1 |
B | 1 | 1 | 1 |
B | 1 | 1 | 1 |
select col1,count(col1) from t_test; --t_testはテーブル名です。
結果は、以下のように返ってきます。
col1 | count(col1) |
A | 1 |
B | 3 |
Aが1つ、Bが3つという感じで。。。
注意事項
NULLのデータは除外される
以下 t_test というテーブルが、このようなデータが登録されていたとします。
COL1 | COL2 | COL3 | COL4 |
A | 1 | 1 | 1 |
B | 1 | 1 | 1 |
B | 1 | 1 | 1 |
B | 1 | 1 | 1 |
NULL | 2 | 2 | 2 |
select count(col1) from t_test; --t_testはテーブル名です。
結果は、4が返ってきます。