できるPRO MySQL できるPROシリーズ Kindle版の内容をまとめる。
NULLの取り扱いについてSUM(), AVG()などの集約関数は,引数で指定した行にNULLがあった場合,NULL値のレコードを除いて計算する。AVG(), COUNT()は,NULL値のレコードが除かれた場合と,含まれた場合で結果が変わるので注意が必要。NULL値を含めて計算を行いたい場合,COUNT(*)を使用すれば,すべての行数を取得できるので利用すること。| 関数 | 意味 |
|---|---|
AVG() |
平均値 |
COUNT() |
行数 |
MAX() |
最大数 |
MIN() |
最小数 |
SUM() |
合計 |
SELECT COUNT(*) FROM city
WHERE CountryCode = 'JPN';
MariaDB [world]> SELECT COUNT(*) FROM city WHERE CountryCode = 'JPN';
+----------+
| COUNT(*) |
+----------+
| 248 |
+----------+
1 row in set (0.00 sec)
SELECT SUM(Population) FROM country
WHERE Continent = 'Asia';
MariaDB [world]> SELECT SUM(Population) FROM country WHERE Continent = 'Asia';
+-----------------+
| SUM(Population) |
+-----------------+
| 3705025700 |
+-----------------+
1 row in set (0.00 sec)
SELECT MAX(Population) FROM city
WHERE CountryCode = 'JPN';
MariaDB [world]> SELECT MAX(Population) FROM city WHERE CountryCode = 'JPN';
+-----------------+
| MAX(Population) |
+-----------------+
| 7980230 |
+-----------------+
1 row in set (0.00 sec)
SELECT MIN(Population) FROM city
WHERE CountryCode = 'JPN';
MariaDB [world]> SELECT MIN(Population) FROM city WHERE CountryCode = 'JPN';
+-----------------+
| MIN(Population) |
+-----------------+
| 91170 |
+-----------------+
1 row in set (0.00 sec)
SELECT * FROM city
WHERE CountryCode = 'JPN'
ORDER BY Population DESC
LIMIT 1;
MariaDB [world]> SELECT * FROM city WHERE CountryCode = 'JPN'ORDER BY Population DESC LIMIT 1;
+------+-------+-------------+----------+------------+
| ID | Name | CountryCode | District | Population |
+------+-------+-------------+----------+------------+
| 1532 | Tokyo | JPN | Tokyo-to | 7980230 |
+------+-------+-------------+----------+------------+
1 row in set (0.00 sec)
SELECT * FROM city
WHERE CountryCode = 'JPN'
ORDER BY Population ASC
LIMIT 1;
MariaDB [world]> SELECT * FROM city WHERE CountryCode = 'JPN'ORDER BY Population ASC LIMIT 1;
+------+---------+-------------+----------+------------+
| ID | Name | CountryCode | District | Population |
+------+---------+-------------+----------+------------+
| 1779 | Tsuyama | JPN | Okayama | 91170 |
+------+---------+-------------+----------+------------+
1 row in set (0.00 sec)