给出下表:
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行?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)