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
怎么做?
6 个解决方案
#1
select 年,产品,销量=max(销量)
from tb
group by 年,产品
from tb
group by 年,产品
#2
mark 学习
#3
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.销量
#4
--晕。一楼的都不对,你还学习。。。
--倒。。。。
--倒。。。。
#5
一楼看错题意了
#6
觉得sql在分组这方面的能力好差.
比如说, 现在我们按某些字段对数据表进行分组.
然后想得到每组的第三条记录(已知,每组的记录数至少有三条)
如果想求解这种问题的话,那将是很麻烦的事情.
当然你可以通过为每组的记录加一个排序列.
但是总觉得用起来不顺手.
比如说, 现在我们按某些字段对数据表进行分组.
然后想得到每组的第三条记录(已知,每组的记录数至少有三条)
如果想求解这种问题的话,那将是很麻烦的事情.
当然你可以通过为每组的记录加一个排序列.
但是总觉得用起来不顺手.
#1
select 年,产品,销量=max(销量)
from tb
group by 年,产品
from tb
group by 年,产品
#2
mark 学习
#3
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.销量
#4
--晕。一楼的都不对,你还学习。。。
--倒。。。。
--倒。。。。
#5
一楼看错题意了
#6
觉得sql在分组这方面的能力好差.
比如说, 现在我们按某些字段对数据表进行分组.
然后想得到每组的第三条记录(已知,每组的记录数至少有三条)
如果想求解这种问题的话,那将是很麻烦的事情.
当然你可以通过为每组的记录加一个排序列.
但是总觉得用起来不顺手.
比如说, 现在我们按某些字段对数据表进行分组.
然后想得到每组的第三条记录(已知,每组的记录数至少有三条)
如果想求解这种问题的话,那将是很麻烦的事情.
当然你可以通过为每组的记录加一个排序列.
但是总觉得用起来不顺手.