------解决方案-------------------- GROUP BY和ORDER BY同时存在的情况是,ORDER BY对GROUP BY后的结果再进行排序的,所以ORDER BY后面的排序字段需要在SELECT里出现的
------解决方案--------------------
SQL code
ORDER BY 子句中的列必须包含在聚合函数或 GROUP BY 子句中。
------解决方案--------------------
不一定要在select 里面出现 下面这个就是错的
SQL code
SELECT [col1] ,[col2] FROM [tb] GROUP BY [col1] ,[col2] ORDER BY [col1] ,[col2] ,[col3]
------解决方案--------------------
------解决方案-------------------- ORDER BY 子句中的列必须包含在聚合函数或 GROUP BY 子句中。
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
------解决方案-------------------- 遇到问题还是去看官方的文档吧,联机丛书就是很好的资料。 4楼写的都是对的,列出了所有的情况。注意group by 与order by同时使用,执行的顺序
SELECT [col1] ,[col2],MAX([col3]) AS [col3] FROM [tb] GROUP BY [col1] ,[col2] ORDER BY [col1] ,[col2] ,[col3] 这句,先执行 group by 返回结果,再进行排序的
------解决方案-------------------- 估计越说你越晕乎 简单的说就是这样的
排开聚合函数不说
select 后面的列+order by 后面的列 必须在group by 里面
也就是说 select 和 order by 后面的列是 group by 列的子集
而 select 和 order by 之间是没有什么瓜葛的。
速度给嫂子个一千两千的
------解决方案-------------------- 除了聚合函数中的字段外,SELECT 后面的字段 都应该出现在 GROUP BY 后面。 ORDER BY 后面的字段可以不出现在 SELECT 后面。别名字段 可以也只能出现在 ORDER BY 后面。
------解决方案--------------------