分组相关的问题

ljooo 2012-10-31 11:26:58
表T有A,B,C列
查询要求,行数不变,每行增加下面两列:
按AB分组查询C的和,和按A分组查询C的和。

select A,B,sum(C)通过A,B分组,sum(C) 只通过A分组
from T


这是一个复杂查询的简化的问题。
group by已经用在其他字段了。
这里能够不用group by实现吗?以前看过好像oracle是可以。
...全文
105 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
ljooo 2012-10-31
  • 打赏
  • 举报
回复
Oracle 有这种特殊的语法
SELECT DISTINCT DEPT, SUM(SAL) OVER (PARTITION BY DEPT ORDER_BY DEPT) SUM_SAL FROM EMPLOYEE
这问题mysql应该是无解的。
叶子 2012-10-31
  • 打赏
  • 举报
回复
mysql问题建议转到mysql板块!
ljooo 2012-10-31
  • 打赏
  • 举报
回复
mysql没有with 子查询
kensouterry1 2012-10-31
  • 打赏
  • 举报
回复
o mySQL我就不知道了哦……
發糞塗牆 2012-10-31
  • 打赏
  • 举报
回复
mysql不能用这个语法吧
kensouterry1 2012-10-31
  • 打赏
  • 举报
回复
select A, b,
(select SUM(c) from T where a= o.a and b= o.b ) '通过ab分组',
(select SUM(c) from T where a= o.a ) '通过a分组'
from T o
kensouterry1 2012-10-31
  • 打赏
  • 举报
回复
表T有A,B,C列
查询要求,行数不变,每行增加下面两列:
按AB分组查询C的和,和按A分组查询C的和。


;with c1 as
(
select A,B,sum(C)通过A,B分组
from T
),
c2 as
(
select NULL,NULL sum(C) 只通过A分组
from T
)
SELECT *
FROM c1
UNION ALL SELECT * FROM c2

简单点,虚视图把两个查询分隔开
ljooo 2012-10-31
  • 打赏
  • 举报
回复
发错了。我想要的是mysql的
haitao 2012-10-31
  • 打赏
  • 举报
回复
mysql也可以通过2个group by实现吧,最后关联回一张表

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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