在oracle中,怎么取一个字段分类后,再取另一个字段排序的前三位
如表有两个字段,a和b,a是分类变量,如四川,重庆,河南,上海,北京等省份。b是连续字段,是各年份的gdp值。想取按a分类后的前三大的b值,即取各城市的前三大的gdp值。...
如表有两个字段,a和b,a是分类变量,如四川,重庆,河南,上海,北京等省份。b是连续字段,是各年份的gdp值。想取按a分类后的前三大的b值,即取各城市的前三大的gdp值。
展开
2个回答
展开全部
select *
from 表 T
where b in(select top 3 b from 表 where a=T.a order by b)
from 表 T
where b in(select top 3 b from 表 where a=T.a order by b)
追问
你的语法应该是sql的吧,我要oracle版本的,谢谢
追答
SELECT *
FROM 表 WHERE b in(
select b from (
select T.*,ROWNUM HS
from (select * from 表 order by b desc) T where rownum<=3)) order by a,b desc
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询