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的单位和计划总数,这个怎么写,求大神解决
展开
 我来答
我爱洗碗2582
2014-05-30 · 超过56用户采纳过TA的回答
知道答主
回答量:114
采纳率:0%
帮助的人:130万
展开全部
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 *
  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的单位和和他所属的计划总数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式