ホームページ > データベース > mysql チュートリアル > PostgreSQLのGROUP BYクエリで各グループの最初の行を選択するにはどうすればよいですか?

PostgreSQLのGROUP BYクエリで各グループの最初の行を選択するにはどうすればよいですか?

DDD
リリース: 2025-01-25 20:21:10
オリジナル
968 人が閲覧しました

How to Select the First Row of Each Group in a PostgreSQL GROUP BY Query?

グループごとにグループの最初の行をPostgreSql postgreSQLでは、操作によるグループの各グループの最初の行は一般的な需要です。このため、強力な条項を使用できます。

お祝いにより、どの式が複製と見なされると見なされるかを定義することができます。この例では、DISTINCT ON値を持つ線のみが重複アイテムと見なされます。

<code class="language-sql">SELECT DISTINCT ON (customer) id, customer, total
FROM purchases
ORDER BY customer, total DESC</code>
ログイン後にコピー
条項は処理の順序を定義します。各グループの最初の行は、合計値の最高値になります。同じ合計値の多くの行がある場合、決定的な因子は

列定義の順序になります。 DISTINCT ON customerキーポイントcustomer

ORDER BY

はpostgresqlの拡張であり、どの式が重複アイテムを決定するかを指定できます。 customer id式は、

句の序文式と一致する必要があります。

天の文章を使用して、各グループの優先順位を決定できます。

リストに
    または
  • 条項にない式を含めることができます。 DISTINCT ON
  • クエリで使用されるインデックスは、パフォーマンスに大きく影響する可能性があります。 、
  • DISTINCT ON列と同じ列と同じシーケンスを持つマルチカラムインデックスは、最高のパフォーマンスを提供します。 ORDER BY
  • 追加の説明ORDER BY
  • 高ナンバーデータ(顧客ごとに少数)の場合、SELECTメソッドは非常に効率的です。ただし、DISTINCT ON低い数データ(顧客ごとに多数)の場合、他のクエリテクノロジーがより効率的になる場合があります。 ORDER BY

以上がPostgreSQLのGROUP BYクエリで各グループの最初の行を選択するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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