ORDER
BY
子句中的列必须包含在聚合函数或
GROUP
BY
子句中。
eg:
SELECT [col1] ,[col2],MAX([col3]) FROM [tb] GROUP BY [col1] ,[col2] ORDER BY [col1] ,[col2] ,MAX([col3])
SELECT [col1] ,[col2],MAX([col3]) AS [col3] FROM [tb] GROUP BY [col1] ,[col2] ORDER BY [col1] ,[col2] ,[col3]
SELECT [col1] ,[col2] FROM [tb] GROUP BY [col1] ,[col2] ,[col3] ORDER BY [col1] ,[col2] ,[col3]
撇开聚合函数不说,select后面的列+order by后面的列必须在group by里面(sqlserver 要求,mysql 貌似没这么要求),也就是说select和order by 后面的列是group by列的子集,
而select 和order by直接没什么直接关系。