【★】急急 sql l 分组 取最大值

Csharp2005 2007-12-09 02:25:50
create table aa( a int ,b int)
insert into aa values(1,111)
insert into aa values(2,222)
insert into aa values(3,333)


create table bb (a int ,b int ,c int) 表bb 的 b 引用 表 aa 的 a .
insert into bb values(1,1,22)
insert into bb values(2,1,33)
insert into bb values(3,1,11)
insert into bb values(4,2,55)
insert into bb values(5,2,11)
insert into bb values(6,3,11)
insert into bb values(7,3,44)

实现结果,按 bb.b 分组,取bb.c 最大值。 要求把所有的值查询出来,结果如下。
2 1 33 111
4 2 55 222
7 3 44 333
我 select max(c),bb.b from bb inner join aa on aa.a=bb.b group by bb.b
这样做 只是 把最大列,分组的列查询出来,如何 把其他的列也 查询出来 。

如果我加上 select max(c),bb.b,bb.a from bb inner join aa on aa.a=bb.b group by bb.b,bb.a

结果 反而错了。我该怎么办 ?
...全文
107 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
hanjoe109 2008-07-29
  • 打赏
  • 举报
回复
學習了
求分組最大,在這裡找到靈感了,呵呵
Csharp2005 2007-12-09
  • 打赏
  • 举报
回复
背着灵魂漫步

OK ,谢谢。
Csharp2005 2007-12-09
  • 打赏
  • 举报
回复
楼上的 你这样写

Select bb.a,bb.b,max(bb.c),aa.b from aa inner join bb on aa.a=bb.b Group by bb.a,bb.b,aa.b

和 “

如果我加上 select max(c),bb.b,bb.a from bb inner join aa on aa.a=bb.b group by bb.b,bb.a

结果 反而错了。我该怎么办 ?



这样写 有区别吗 ? 都是错的,都查询 出来 7行 ,显然错了。
我要的结果
2 1 33 111
4 2 55 222
7 3 44 333
pt1314917 2007-12-09
  • 打赏
  • 举报
回复

select t.a,t.b,c,aa.b from bb t,aa where not exists(select 1 from bb where b=t.b and c>t.c)
and aa.a=t.b

mustudent 2007-12-09
  • 打赏
  • 举报
回复
Select bb.a,bb.b,max(bb.c),aa.b from aa inner join bb on aa.a=bb.b Group by bb.a,bb.b,aa.b 

22,207

社区成员

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

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