group by a,b,c和group by b,c,a 的区别?

lovemeet 2006-11-28 09:03:09
select a ,b ,c ,sum(d) from group by a,b,c

select a ,b ,c ,sum(d) from group by b,c,a
有什么不同?
查询结果是不是相同?group by 后有很多字段,是不是只有最最后一个字段起到作用?
...全文
2286 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
pengda1i 2006-11-29
  • 打赏
  • 举报
回复
select a ,b ,c ,sum(d) from group by a,b,c

select a ,b ,c ,sum(d) from group by b,c,a

是不同的,不过如果不带WITH CUBE和WITH ROLLUP,不同的只是结果集的排序,因为默认按group by后字段排序

如果带WITH CUBE,结果集也相同,排序不同

如果带WITH ROLLUP,结果集集不相同了

oooooo126 2006-11-29
  • 打赏
  • 举报
回复
排列次序不一样,
用group by a,b,c with cube最明显
m00ners 2006-11-28
  • 打赏
  • 举报
回复
“最后一个字段起到作用”这点是不对的

但是group by a,b,c 和 group by b,c,a 出来的结果应该是一样的
fish_yht 2006-11-28
  • 打赏
  • 举报
回复
三个汇总不同吧
a,b,c为先基于a汇总,再基于b汇总,最后基于c汇总
c,b,a为先基于c汇总,再基于b汇总,最后基于a汇总
marco08 2006-11-28
  • 打赏
  • 举报
回复
学习
xyxfly 2006-11-28
  • 打赏
  • 举报
回复
dawugui 2006-11-28
  • 打赏
  • 举报
回复
select a ,b ,c ,sum(d) from group by a,b,c

select a ,b ,c ,sum(d) from group by b,c,a

不同,分组顺序为group by 后面跟着的东西.
gc_ding 2006-11-28
  • 打赏
  • 举报
回复
当然不同!
group by 后的字段按顺序分组

比如表X:
部门 职位 姓名 工资
A 经理 张三 2000
A 助理 李四 1000
B 经理 张三 2000
B 助理 赵六 1000

select 部门,职位,姓名,SUM(工资) from x group by 部门,职位,姓名
结果:
部门 职位 姓名 工资
A 经理 张三 2000
A 助理 李四 1000
B 经理 张三 2000
B 助理 赵六 1000

select 姓名,SUM(工资) from x group by 姓名
结果:
姓名 工资
张三 4000 -- 合并了
李四 1000
赵六 1000


34,592

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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