postgresql 实现取出分组中最大的几条数据
看代码吧~
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
以上为个人经验,希望能给大家一个参考,也希望大家多多支持IT技术网。如有错误或未考虑完全的地方,望不吝赐教。
您可能感兴趣的文章:
- 解决postgreSql远程连接数据库超时的问题
- 解决sqoop从postgresql拉数据,报错TCP/IP连接的问题
- sqoop读取postgresql数据库表格导入到hdfs中的实现
- Postgresql 检查数据库主从复制进度的操作
- 在postgresql数据库中创建只读用户的操作
- 基于postgresql数据库锁表问题的解决