在Oracle中使用聚合函数和列时,是否有必要使用GROUP BY
?
在MySQL中,如果我没有使用它可以正常工作,但在Oracle中,它会给我一个错误。
答案 0 :(得分:8)
如果你必须选择至少一个没有聚合函数的列,
所以,这将有效:
select sum(col_1), avg(col_2) from table_1;
虽然这不会:
select sum(col_1), avg(col_2), col_3 from table_1;
答案 1 :(得分:6)
使用聚合函数时,应始终使用GROUP BY
。不使用GROUP BY
是MySQL允许的非标准SQL扩展。
<强> RANT 强>
恕我直言,这个扩展是脑死亡,完全危险,永远不应该使用,因为MySQL为非聚合列返回随机行的值。
<强> END_OF_RANT 强>