MySQL如何决定在group by子句中返回哪个id?

时间:2009-09-20 14:04:55

标签: mysql group-by

比如这个:

SELECT id,count(*),company 来自jobs GROUP BY公司

其中id是jobs

的主键

1 个答案:

答案 0 :(得分:2)

类似的问题:

Why does MySQL allow "group by" queries WITHOUT aggregate functions?

这是MySQL特定的,不是ANSI标准SQL。大多数其他数据库引擎不允许未对其进行分组或通过聚合函数运行的列。

似乎MySQL保留了符合条件的第一行的值。

具有此行为的聚合函数是FIRST(),虽然MySQL实现了它,但这似乎是未分组的列的默认行为,并且不通过任何其他聚合函数运行。

在ANSI标准SQL中,您可以这样做:

SELECT FIRST(jobtitle), company FROM jobs GROUP BY company;

然而在MySQL中,你可以(但ANSI标准也适用):

SELECT jobtitle, company FROM jobs GROUP BY company;