MySQLの max にNULLが含まれても関係ないらしい
MySQL で maxを取得しようとしたさい、あれどんな挙動するんやろと迷った
気にすることなかった。
mysql> select (NULL < 1); +------------+ | (NULL < 1) | +------------+ | NULL | +------------+ 1 row in set (0.00 sec) mysql> select (NULL > 0); +------------+ | (NULL > 0) | +------------+ | NULL | +------------+ 1 row in set (0.00 sec) mysql> select * FROM ( SELECT NULL v UNION SELECT 0 v UNION SELECT 5 v UNION SELECT 10 v ) t; +------+ | v | +------+ | NULL | | 0 | | 5 | | 10 | +------+ 4 rows in set (0.00 sec) mysql> SELECT SUM(t.v) , MIN(t.v) , MAX(t.v) , COUNT(t.v) , AVG(t.v) FROM ( SELECT NULL v UNION SELECT 0 v UNION SELECT 5 v UNION SELECT 10 v ) t; +----------+----------+----------+------------+----------+ | SUM(t.v) | MIN(t.v) | MAX(t.v) | COUNT(t.v) | AVG(t.v) | +----------+----------+----------+------------+----------+ | 15 | 0 | 10 | 3 | 5.0000 | +----------+----------+----------+------------+----------+ 1 row in set (0.00 sec)