第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

PostgreSQL中的分組限制:顯示每組的前N行?

PostgreSQL中的分組限制:顯示每組的前N行?

搖曳的薔薇 2019-09-19 14:34:38
我需要為每個組取前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行(按名稱排序),即類似于的結(jié)果: 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。
查看完整描述

3 回答

?
富國滬深

TA貢獻1790條經(jīng)驗 獲得超9個贊

新解決方案(PostgreSQL 8.4)


SELECT

  * 

FROM (

  SELECT

    ROW_NUMBER() OVER (PARTITION BY section_id ORDER BY name) AS r,

    t.*

  FROM

    xxx t) x

WHERE

  x.r <= 2;


查看完整回答
反對 回復 2019-09-19
?
POPMUISE

TA貢獻1765條經(jīng)驗 獲得超5個贊

這是另一個解決方案(PostgreSQL <= 8.3)。


SELECT

  *

FROM

  xxx a

WHERE (

  SELECT

    COUNT(*)

  FROM

    xxx

  WHERE

    section_id = a.section_id

  AND

    name <= a.name

) <= 2


查看完整回答
反對 回復 2019-09-19
  • 3 回答
  • 0 關注
  • 942 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號