[解決済み】PostgreSQLでグループ化されたLIMIT:各グループの最初のN行を表示する?
2022-04-07 04:17:48
質問
各グループの最初の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)
最初の2行が必要です(順序は 名前 ) の各 セクションID というような結果が得られます。
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) x
WHERE
x.r <= 2;
関連
-
[解決済み】集約関数のないTSQLピボット
-
[解決済み] SQLクエリで2つの列から値を引き算する
-
[解決済み] psql: FATAL: データベース "<user>" が存在しない
-
[解決済み] 各GROUP BYグループの最初の行を選択しますか?
-
[解決済み] 各グループの最後のレコードを取得する - MySQL
-
[解決済み] 最初の行への結合方法
-
[解決済み] MYSQLでMAX(列の値)、PARTITIONで別の列で行を選択するにはどうすればよいですか?
-
[解決済み】Oracleクエリが順序付け後に返す行数を制限するにはどうすればいいですか?
-
[解決済み】グループ化されたSQL結果の各グループで最大値を持つレコードを取得する
-
[解決済み] 各グループの最初の行を選択するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】''付近の構文が正しくない
-
[解決済み] varchar データ型から datetime データ型に変換すると、SQL クエリで範囲外の値が発生する
-
[解決済み】SQLクエリ「00904. 00000 - "%s: 無効な識別子"
-
[解決済み】テキストが切り捨てられた、または1つ以上の文字がターゲットコードページで一致しない アンピボットの主キーを含む
-
[解決済み】SQL ServerでIdentityカラムを更新する方法は?
-
[解決済み] データ型 varchar の変換エラー
-
[解決済み] mongoの外部キー?
-
[解決済み] "このSqlTransactionは完了しました。もう使用できません。"...設定エラー?
-
[解決済み] nvarchar 値 ... をデータ型 int に変換する際に、変換に失敗しました。
-
[解決済み] VBA - ADODB.CommandTextの実行