Oracle 查询分组后的统计
Oracle语句:selectyhdwmc,count(yhdwmc)csfromyjwz_jh_b_xqjhtgroupbyyhdwmchavingcount(yhdw...
Oracle语句:
select yhdwmc,count(yhdwmc) cs from yjwz_jh_b_xqjh t group by yhdwmc having count(yhdwmc)>0 order by cs desc 这个SQL语句只查出了,各个单位有多少条计划,然后按总数从多到少排序,但是我要取排在前3的单位和计划总数,这个怎么写,求大神解决 展开
select yhdwmc,count(yhdwmc) cs from yjwz_jh_b_xqjh t group by yhdwmc having count(yhdwmc)>0 order by cs desc 这个SQL语句只查出了,各个单位有多少条计划,然后按总数从多到少排序,但是我要取排在前3的单位和计划总数,这个怎么写,求大神解决 展开
1个回答
展开全部
select * from
(select
a.*,
row_number() over (partition by a.col_a order by create_ts desc) as rn
from table1 a )
where rn = 1;
-- table1 换成你的表, col_a 换成你的分组列, create_ts 是你的时间戳字段, 如果是字符串需转换为date
希望能解决您的问题。
(select
a.*,
row_number() over (partition by a.col_a order by create_ts desc) as rn
from table1 a )
where rn = 1;
-- table1 换成你的表, col_a 换成你的分组列, create_ts 是你的时间戳字段, 如果是字符串需转换为date
希望能解决您的问题。
追问
SELECT *
FROM (SELECT yhdwmc,
ROW_NUMBER () OVER (PARTITION BY yhdwmc ORDER BY yhdwmc DESC)
rn
FROM yjwz_jh_b_xqjh a)
WHERE rn = 3
是这样的对吗?可是结果只查询出 排在前3的单位,并没有计算总和,我这里要查询的是:排在前3的单位和和他所属的计划总数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询