PostgreSQL中的分组LIMIT:显示每个组的前N行?

PostgreSQL中的分组LIMIT:显示每个组的前N行?,第1张

概述我需要为每个组的前N行,按自定义列排序。 给出下表: db=# SELECT * FROM xxx; id | section_id | name----+------------+------ 1 | 1 | A 2 | 1 | B 3 | 1 | C 4 | 1 | D 5 | 2 我需要为每个组的前N行,按自定义列排序。

给出下表:

db=# SELECT * FROM xxx; ID | section_ID | name----+------------+------  1 |          1 | A  2 |          1 | B  3 |          1 | C  4 |          1 | D  5 |          2 | E  6 |          2 | F  7 |          3 | G  8 |          2 | H(8 rows)

我需要为每个section_ID的前2行(按名称排序),即类似的结果:

ID | section_ID | name----+------------+------  1 |          1 | A  2 |          1 | B  5 |          2 | E  6 |          2 | F  7 |          3 | G(5 rows)

我使用Postgresql 8.3.5。

新解决方案(Postgresql 8.4)
SELECT  * FROM (  SELECT    ROW_NUMBER() OVER (PARTITION BY section_ID ORDER BY name) AS r,t.*  FROM    xxx t) xWHERE  x.r <= 2;
总结

以上是内存溢出为你收集整理的PostgreSQL中的分组LIMIT:显示每个组的前N行?全部内容,希望文章能够帮你解决PostgreSQL中的分组LIMIT:显示每个组的前N行?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1172939.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存