[解決済み] PostgreSQLで日付が最大のidをカテゴリでグループ分けして選択するには?
2023-01-01 20:10:08
質問
例えば、私はカテゴリによってグループ化された最大の日付でidを選択したいと思います。 結果は次のとおりです。7, 2, 6
id category date
1 a 2013-01-01
2 b 2013-01-03
3 c 2013-01-02
4 a 2013-01-02
5 b 2013-01-02
6 c 2013-01-03
7 a 2013-01-03
8 b 2013-01-01
9 c 2013-01-01
PostgreSQLでこれを行う方法を教えていただいてもよろしいでしょうか?
どのように解決するのですか?
これは完璧なユースケースで
DISTINCT ON
- 標準の Postgres 固有の拡張
DISTINCT
:
SELECT DISTINCT ON (category)
id -- , category, date -- any other column (expression) from the same row
FROM tbl
ORDER BY category, date DESC;
降順でのソートには注意が必要です。カラムがNULLになる可能性がある場合、そのカラムに
NULLS LAST
:
DISTINCT ON
はシンプルで高速です。詳細な説明はこの関連回答で。
大きなテーブルで、各グループに多くの行がある場合
category
は別の方法を検討してください。
関連
-
[解決済み] SQL ServerでSELECTからUPDATEする方法とは?
-
[解決済み] PostgreSQL コマンドラインユーティリティ: psql を終了する方法
-
[解決済み] 各GROUP BYグループの最初の行を選択しますか?
-
[解決済み] MySQLの複数行を1つのフィールドに連結することはできますか?
-
[解決済み] PostgreSQLのユーザーパスワードを変更する方法を教えてください。
-
[解決済み] SQLのIN句をパラメータ化する
-
[解決済み] MYSQLでMAX(列の値)、PARTITIONで別の列で行を選択するにはどうすればよいですか?
-
[解決済み] SQL Serverでレコードを削除した後、IDシードをリセットする。
-
[解決済み】PostgreSQLのエラーです。Fatal: ロール "username" が存在しません。
-
[解決済み】グループ化された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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] SQL Server FOR EACH ループ
-
[解決済み] 各GROUP BYグループの最初の行を選択しますか?
-
[解決済み] SQL ServerでJOINを使用してUPDATE文を実行するにはどうすればよいですか?
-
[解決済み] SQL Serverでレコードを削除した後、IDシードをリセットする。
-
[解決済み] SQL Server における DateTime2 と DateTime の比較
-
[解決済み] ある列の最大値を持つ行を取得する
-
[解決済み] Entity Framework VS LINQ to SQL VS ADO.NETでストアドプロシージャを使う?[クローズド]
-
[解決済み] Selectステートメントで特定のフィールドの重複を検索する
-
[解決済み] Postgres でサブクエリを使用してテーブルの行を更新する
-
[解決済み] ASCでソートしてもNULL値が先か?