group by子句中的字段顺序

时间:2014-08-22 15:45:09

标签: sql group-by

在sql中,如果我在group by子句中有多个列,那么我指定它们的顺序会有所不同吗? 例如:

select col1,col2, col3,sum(col4) from table1 group by col1,col2, col3?

是否与:

相同
select col1,col2, col3,sum(col4) from table1 group by col2,col1, col3?

2 个答案:

答案 0 :(得分:0)

否。

订单对GROUP BY子句无关紧要。因为SQL是声明性的。因此,在group by子句中指定列的顺序无关紧要。

如果你使用的是WITH ROLLUP,那么在MySql中,group by的顺序可能很重要,否则就不会。在SQL Server中,{@ 1}}已弃用。

答案 1 :(得分:0)

group by列表的顺序无关紧要 您可以将order by子句解释为build groups子句,以确保其任何一个组至少位于与其他组不同的字段中。
在这个概念中,顺序并不重要,字段列表只是" knives"打破记录集。
另外我警告你:group by可能会或可能不会返回记录,因为它的列表显示(它没有被放弃)。如果需要订单(在完整输出记录集中),也请使用order by