SQL 中如何根据只根据第一个字段分组

yanjf818 2010-04-15 01:59:10
求助各位
列如:

select A,sum(B) as bb,C from TB group by A,bb,C

怎么样才能只根据第一个字段A 来分组 后面的 bb,c 不管是什么都不没关系。谢谢
...全文
337 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
--小F-- 2010-04-15
  • 打赏
  • 举报
回复
select *,B=(select sum(b) from TB where a=t.a) from tb t 
心中的彩虹 2010-04-15
  • 打赏
  • 举报
回复

select A,sum(B) as bb,max(C) C from TB group by A

yanjf818 2010-04-15
  • 打赏
  • 举报
回复
select *,B=(select sum(b) from TB where a=t.a) from tb t 

这样 并没有根据 需要的A 来分组


select A,sum(B) as bb,C,D,E,F from TB group by A,bb,C,D,E,F


但是 E,F 是必须的


yanjf818 2010-04-15
  • 打赏
  • 举报
回复
select A,sum(B) as bb,C,D,E,F from TB group by A,bb,C,D,E,F

如果后面把bb,c,d,e,f 去掉之后会提示 C,D,E,F 无效 因为不包含在聚合函数中
htl258_Tony 2010-04-15
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 yanjf818 的回复:]
select A,sum(B) as bb,C,D,E,F from TB group by A,bb,C


我SELECT 后面还有很多字段呢 怎么就只根据A来分组呢
[/Quote]

试试:

select *,B=(select sum(b) from TB where a=t.a) from tb t 
htl258_Tony 2010-04-15
  • 打赏
  • 举报
回复
select A,sum(B) as bb from TB group by A

还是要:

select A,B=(select sum(b) from TB where a=t.a),C from tb t group by a,c
yanjf818 2010-04-15
  • 打赏
  • 举报
回复
select A,sum(B) as bb,C,D,E,F from TB group by A,bb,C


我SELECT 后面还有很多字段呢 怎么就只根据A来分组呢
喜-喜 2010-04-15
  • 打赏
  • 举报
回复
select A,sum(B) as bb from TB group by A 
--小F-- 2010-04-15
  • 打赏
  • 举报
回复
select A,sum(B) as bb from TB group by A
fwacky 2010-04-15
  • 打赏
  • 举报
回复

select A,sum(B) as bb from TB group by A

22,210

社区成员

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

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