sum()函数 我需要在sum(中进行查询)

fangfangok 2009-04-26 05:19:02
select cl_class, sum(select num from 某表 where 某表.id=主表.id) as total from 主表 group by cl_class



我需要在sum()中进行查询,但是sum函数不允许里面再有sum或进行查询。求大家帮助.

...全文
162 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
Adechen 2009-04-26
  • 打赏
  • 举报
回复
select Z.cl_class, sum(M.num) as total from 主表 Z join 某表 M
on Z.id=M.id
ndsc_cherry 2009-04-26
  • 打赏
  • 举报
回复
顶上
ws_hgo 2009-04-26
  • 打赏
  • 举报
回复
[Quote=引用楼主 fangfangok 的帖子:]
select cl_class, sum(select num from 某表 where 某表.id=主表.id) as total from 主表 group by cl_class


我需要在sum()中进行查询,但是sum函数不允许里面再有sum或进行查询。求大家帮助.
[/Quote]
建议LZ对这种问题
先连接后聚合
ws_hgo 2009-04-26
  • 打赏
  • 举报
回复
也可以这样

select Z.cl_class, sum(M.num) as total from 主表 Z join 某表 M
on Z.id=M.id
group by Z.cl_class
ws_hgo 2009-04-26
  • 打赏
  • 举报
回复
此贴要先聚合然后在连接

select cl_class,(select num from 
(
select id,sum(num) num from 某表
) M join 主表 m on m.id=Z.id
) total from 主表
sdluhaibing 2009-04-26
  • 打赏
  • 举报
回复
楼上正解
ws_hgo 2009-04-26
  • 打赏
  • 举报
回复
等下
bw555 2009-04-26
  • 打赏
  • 举报
回复
直接两表做关联不可以么?用子查询的速度比关联查询速度要慢
select 主表.cl_class, 
sum(某表.num) as total
from 主表,某表
where 某表.id=主表.id
group by cl_class
悔说话的哑巴 2009-04-26
  • 打赏
  • 举报
回复
这个可以满足你的要求
select a.cl_class,sum(b.num)
(select num from 某表 where 某表.id=主表.id)a,
主表 b
where a.id = b.id
group by a.cl_class
wxg22526451 2009-04-26
  • 打赏
  • 举报
回复
select cl_class, (select sum(num) from 某表 where 某表.id=a.id) as total 
from 主表 a

--或用连接
select a.cl_class, sum(b.num) as total from 主表 a join 某表 b
on 某表.id=主表.id
group by a.cl_class
lupanlupan 2009-04-26
  • 打赏
  • 举报
回复
上面错了

select b.cl_class,sum(a.num)
(select 主表.id,num from 某表 where 某表.id=主表.id)a,
主表 b
where a.id = b.id
group by b.cl_class
lupanlupan 2009-04-26
  • 打赏
  • 举报
回复

select a.cl_class,sum(b.num)
(select num from 某表 where 某表.id=主表.id)a,
主表 b
where a.id = b.id
group by a.cl_class
云想慕尘 2009-04-26
  • 打赏
  • 举报
回复
还可以用循环代替
yangqidong 2009-04-26
  • 打赏
  • 举报
回复
不需要 group by cl_class
yangqidong 2009-04-26
  • 打赏
  • 举报
回复
select cl_class,
(select sum(num) from 某表 where 某表.id=主表.id) as total
from 主表
yangqidong 2009-04-26
  • 打赏
  • 举报
回复
select cl_class,
(select sum(num) from 某表 where 某表.id=主表.id) as total
from 主表 group by cl_class

62,268

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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