select A.colA,A.colB,sum(A.colC) from A group by A.colA,A.colB order by A.colA,A.colD order by中有group by以外的列
select A.colA,A.colB,sum(A.colC) from A group by A.colA,A.colB order by A.colA,A.colB 这样应该没有问题了。 ------------------------------------------------------------------------------ Blog: http://blog.csdn.net/tianlesoftware 网上资源: http://tianlesoftware.download.csdn.net 相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx Q Q 群:62697716
如果同时有GROUP BY 和ORDER BY 则ORDERY BY必须是SELECT里出现的列(包括聚合函数产生的列) 如果单ORDER BY 则可以SELECT的列与ORDERY BY里的不一致,前提是表里必须有这列
我给修正下哈:用到了聚合函数,且同时有GROUP BY 和ORDER BY时 则select中不在聚合函数中的columns和order by中的columns必须都出现在group by中! 验证用例: select deptno, sum(sal) from emp group by deptno,job order by deptno,job大家同意这句话吗?
可以不出现在group by中 但需要聚合 比如select A.colA,A.colB,sum(A.colC) from A group by A.colA,A.colB order by A.colA,max(A.colD) 也可以用别的聚合函数代替
select A.colA,A.colB,sum(A.colC) from A group by A.colA,A.colB order by A.colA,A.colD a.colD不在Group by 中也不在聚合函数中,所以报错
楼上的也正确,但是max(A.colD)只有一个值,没有什么意义,还不如不要max(A.colD)
谢谢大家的回答!!!综合大家的意见,我想最终的答案应该是这样:用到了聚合函数,且同时有GROUP BY 和ORDER BY时 则select中不在聚合函数中的columns和order by中不在聚合函数中的columns必须都出现在group by中!
from A
group by A.colA,A.colB
order by A.colA,A.colD
order by中有group by以外的列
from A
group by A.colA,A.colB
order by A.colA,A.colB
这样应该没有问题了。
------------------------------------------------------------------------------
Blog: http://blog.csdn.net/tianlesoftware
网上资源: http://tianlesoftware.download.csdn.net
相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx
Q Q 群:62697716
回答:必须出现在group by子句中,组函数的计算条件是以group by的字段为基准
2 如果在select列表项中除了包含组函数外,还包含了表的某些列,那么你将必须使用group by语句。
回答:必须使用group by
则ORDERY BY必须是SELECT里出现的列(包括聚合函数产生的列)
如果单ORDER BY
则可以SELECT的列与ORDERY BY里的不一致,前提是表里必须有这列
我给修正下哈:用到了聚合函数,且同时有GROUP BY 和ORDER BY时
则select中不在聚合函数中的columns和order by中的columns必须都出现在group by中!
验证用例:
select deptno, sum(sal)
from emp
group by deptno,job
order by deptno,job大家同意这句话吗?
但需要聚合
比如select A.colA,A.colB,sum(A.colC)
from A
group by A.colA,A.colB
order by A.colA,max(A.colD) 也可以用别的聚合函数代替
from A
group by A.colA,A.colB
order by A.colA,A.colD a.colD不在Group by 中也不在聚合函数中,所以报错
楼上的也正确,但是max(A.colD)只有一个值,没有什么意义,还不如不要max(A.colD)
则select中不在聚合函数中的columns和order by中不在聚合函数中的columns必须都出现在group by中!