sql聚合函数嵌套问题

u010734898 2013-05-17 06:03:01
我现在要查的是top client(买东西总和加起来最多的)

所以我输了 SELECT C.CLIENTNO, C.CNAME, MAX(SUM(P.AMOUNT))
FROM CLIENT C,PURCHASE P
WHERE C.CLIENTNO=P.CLIENTNO
GROUP BY C.CLIENTNO,C.CNAME;
提示说不是单组分组函数,所以 问题应该是出在 max(sum(p.amount))上吧,应该如何分开来写啊
...全文
628 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
u010734898 2013-05-18
  • 打赏
  • 举报
回复
好的,还是要感谢u010412956和sych888啊
sych888 2013-05-18
  • 打赏
  • 举报
回复
引用 6 楼 u010734898 的回复:
感谢sych888,已经解决了,我是初学者,那个tt和tt1是自己定义的吗?还是数据库自带的东西??不是很明白
类似于表别名,在这里可以理解为查询结果集的别名
u010734898 2013-05-18
  • 打赏
  • 举报
回复
感谢sych888,已经解决了,我是初学者,那个tt和tt1是自己定义的吗?还是数据库自带的东西??不是很明白
sych888 2013-05-17
  • 打赏
  • 举报
回复
引用 2 楼 u010734898 的回复:
我打了 with t as (select c.clientno,c.cname,sum(p.amount) p.amount from c.client c,purchase p WHERE C.CLIENTNO=P.CLIENTNO GROUP BY C.CLIENTNO,C.CNAME) select* from t where p.amount=(select max(p.a,ount) from t) 不对啊,说未找到要求的from 关键字
红色部分有问题
u010412956 2013-05-17
  • 打赏
  • 举报
回复
p.a,ount?
sych888 2013-05-17
  • 打赏
  • 举报
回复
SELECT CLIENTNO,CNAME,MAX_VALUE FROM (SELECT C.CLIENTNO, C.CNAME, SUM(P.AMOUNT) MAX_VALUE FROM CLIENT C,PURCHASE P WHERE C.CLIENTNO=P.CLIENTNO GROUP BY C.CLIENTNO,C.CNAME) TT1 WHERE TT1.MAX_VALUE IN (SELECT MAX(MAX_VALUE) FROM (SELECT C.CLIENTNO, C.CNAME, SUM(P.AMOUNT) MAX_VALUE FROM CLIENT C,PURCHASE P WHERE C.CLIENTNO=P.CLIENTNO GROUP BY C.CLIENTNO,C.CNAME) TT);
u010734898 2013-05-17
  • 打赏
  • 举报
回复
我打了 with t as (select c.clientno,c.cname,sum(p.amount) p.amount from c.client c,purchase p WHERE C.CLIENTNO=P.CLIENTNO GROUP BY C.CLIENTNO,C.CNAME) select* from t where p.amount=(select max(p.a,ount) from t) 不对啊,说未找到要求的from 关键字
u010412956 2013-05-17
  • 打赏
  • 举报
回复
with t as
 (SELECT job, deptno, sum(sal) sal FROM emp group by job, deptno)
select * from t where sal = (select max(sal) from t)

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧