ホームページ > データベース > mysql チュートリアル > PostgreSQL で各カテゴリの最大日付 ID を取得するにはどうすればよいですか?

PostgreSQL で各カテゴリの最大日付 ID を取得するにはどうすればよいですか?

Linda Hamilton
リリース: 2025-01-03 01:58:38
オリジナル
425 人が閲覧しました

How to Retrieve the Maximum Date ID for Each Category in PostgreSQL?

PostgreSQL でカテゴリ別にグループ化された最大日付 ID を取得する

データベース操作では、多くの場合、特定の条件に基づいてレコードを取得する必要があります。このようなタスクの 1 つは、特定のデータセット内の各カテゴリの最大の日付を持つ ID を選択することです。これは、PostgreSQL で DISTINCT ON 句を使用すると効果的に実現できます。

次のサンプル データを考えてみましょう:

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
ログイン後にコピー

それぞれの最大日付を持つ ID を選択するにはカテゴリでは、次を使用できますクエリ:

SELECT DISTINCT ON (category)
       id  -- , category, date  -- any other column (expression) from the same row
FROM   tbl
ORDER  BY category, date DESC;
ログイン後にコピー

説明:

  • DISTINCT ON (category): この句により、重複したカテゴリが確実に削除され、有効になります。並べ替えを満たす最初の一意のカテゴリを選択します。 criteria.
  • date DESC: この降順の並べ替え順序により、各カテゴリの最大の日付を持つレコードが最初に取得されます。

このクエリの結果

7
2
6
ログイン後にコピー

DISTINCT ON が特に便利であることに注意してください。同じ最大日付を持つ複数のレコードが存在する場合。このような場合、各カテゴリの最初の一意のレコードを選択する方法が提供されます。

以上がPostgreSQL で各カテゴリの最大日付 ID を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート