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)

fdays.blogspot.com