各グループの最初の行を見つけます
クエリ構造
DISTINCT ON
<code class="language-sql">SELECT DISTINCT ON (grouping_expression) selected_columns FROM table_name ORDER BY grouping_expression, additional_ordering_expression(s)</code>
ORDER BY
例
テーブル:を検討してください
および次のデータ:ORDER BY
output:purchases
<code class="language-sql">CREATE TABLE purchases ( id SERIAL PRIMARY KEY, customer VARCHAR(50) NOT NULL, total NUMERIC(10, 2) NOT NULL );</code>
null値
<code class="language-sql">INSERT INTO purchases (customer, total) VALUES ('Joe', 5), ('Sally', 3), ('Joe', 2), ('Sally', 1);</code>
句に
を追加することをお勧めします:<code class="language-sql">SELECT DISTINCT ON (customer) id, customer, total FROM purchases ORDER BY customer, total DESC, id;</code>
他の列を選択を選択します リストは、グループの表現に限定されません。他の列を含めることができます。これにより、このテクノロジーは複雑なサブクエリまたは集計/ウィンドウ関数を置き換えることができます。
<code>id | customer | total ----------------------------- 1 | Joe | 5 2 | Sally | 3</code>
ORDER BY
NULLS LAST
<code class="language-sql">ORDER BY customer, total DESC NULLS LAST, id;</code>
各ラインの最後のn関連のニバーをお問い合わせくださいSELECT
以上がPostgreSQLのDISTINCT ON句を使用して各グループの最初の行を見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。