sql语句,求每个分组中的最大值

xieqi 2005-07-16 04:19:59
年 产品 销量
2005 a 700
2005 b 550
2005 c 600
2006 a 340
2006 b 500
2007 a 220
2007 b 350

我要得到
2005 a 700
2006 b 500
2007 b 350
怎么做?
...全文
584 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
filebat 2005-07-16
  • 打赏
  • 举报
回复
觉得sql在分组这方面的能力好差.

比如说, 现在我们按某些字段对数据表进行分组.
然后想得到每组的第三条记录(已知,每组的记录数至少有三条)

如果想求解这种问题的话,那将是很麻烦的事情.
当然你可以通过为每组的记录加一个排序列.
但是总觉得用起来不顺手.
wangdehao 2005-07-16
  • 打赏
  • 举报
回复
一楼看错题意了
zlp321002 2005-07-16
  • 打赏
  • 举报
回复
--晕。一楼的都不对,你还学习。。。
--倒。。。。
wangdehao 2005-07-16
  • 打赏
  • 举报
回复

select * from tb a where not exists(select * from tb where 年=a.年 and 销量>a.销量)

--or:
select * from tb a inner join (select 年,max(销量) as 销量 from tb group by 年)b
on a.年=b.年 and a.销量=b.销量
summerICEREDTEA 2005-07-16
  • 打赏
  • 举报
回复
mark 学习
Andy__Huang 2005-07-16
  • 打赏
  • 举报
回复
select 年,产品,销量=max(销量)
from tb
group by 年,产品

34,590

社区成员

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

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