为什么SQL中的分组GROUP BY需要使用SUN()或MAX()等聚合函数?

+------+---------+-------+
| id   | revenue | month |
+------+---------+-------+
| 1    | 8000    | Jan   |
| 2    | 9000    | Jan   |
| 3    | 10000   | Feb   |
| 1    | 7000    | Feb   |
| 1    | 6000    | Mar   |
+------+---------+-------+

上面这个表格,如果使用GROUP BY id会被分为三组。

+------+---------+-------+
| id   | revenue | month |
+------+---------+-------+
| 1    | 8000    | Jan   |
| 1    | 7000    | Feb   |
| 1    | 6000    | Mar   |
+------+---------+-------+

+------+---------+-------+
| id   | revenue | month |
+------+---------+-------+
| 2    | 9000    | Jan   |
+------+---------+-------+

+------+---------+-------+
| id   | revenue | month |
+------+---------+-------+
| 3    | 10000   | Feb   |
+------+---------+-------+

此时在第一组中,有三条记录,也就是说有三个revenue。那么此时select id,revenue就无法判定应该取哪一个revenue,所以这样的操作在标准SQL中是不允许的,只能通过聚合函数来处理。