countについて

sqlが苦手な私です。

今回はcountについてです。

使い方

count(col_name)

count関数は引数のcolに対しての行数をカウントしてくれます。

ただし、col_nameをつけるかどうかで動作が変わります。

mysql> select count(*) from household_account_book;
+----------+
| count(*) |
+----------+
|        8 |
+----------+

これの場合は、nullを含むすべての行数が返ってきます。

col_nameを指定することで、nullを除外できます。

mysql> select count(expense_item) from household_account_book;
+---------------------+
| count(expense_item) |
+---------------------+
|                   6 |
+---------------------+

group byを使うとこんな感じになります。

mysql> select expense_item, count(expense_item)  from household_account_book group by expense_item;
+-----------------+---------------------+
| expense_item    | count(expense_item) |
+-----------------+---------------------+
| NULL            |                   0 |
| 交際費          |                   1 |
| 教育娯楽費      |                   1 |
| 水道光熱費      |                   1 |
| 給料            |                   1 |
| 食費            |                   2 |
+-----------------+---------------------+

以上です。