看代码吧~
with name as (
select
*
from
(
select
xzqdm,
substring (zldwdm, 1, 9) xzdm,
count (*) sl
from
sddltb_qc
where
xzqdm in ('130432', '210604')
group by
xzqdm,
substring (zldwdm, 1, 9)
) as a
order by
xzqdm,
xzdm,
sl
) select
xzqdm,
xzdm,
sl
from
(
select
*, row_number () over (
partition by xzqdm
order by
sl desc
) as row_id
from
name
) as a
where
row_id <= 2
order by
xzqdm
其中
select * from (select xzqdm,substring(zldwdm,1,9) xzdm,count(*) sl from sddltb_qc where xzqdm in ('130432','210604') group by xzqdm,substring(zldwdm,1,9)) as a order by xzqdm,xzdm,sl
执行结果:
添加行序号:row_number () over (order by a.bsm asc) as 序号
分组添加序号:row_number () over (partition by xzqdm order by a.bsm asc) as 序号
补充:pgsql 表随机取几条数据
取100条
select * from map_route_info_composite order by random() limit 100
以上为个人经验,希望能给大家一个参考,也希望大家多多支持www.887551.com。如有错误或未考虑完全的地方,望不吝赐教。