PostgreSql
のグループによってグループの最初の行を選択します PostgreSQLでは、操作によってグループ内の各グループの最初の行を選択することが一般的な要件です。これを行うには、強力な句句を除外することができます。
SELECT DISTINCT ON (customer) id, customer, total
FROM purchases
ORDER BY customer, total DESC
は句を明確にすることで、どの式が重複と見なされるかを定義することができます。この場合、
customer 列を指定します。これは、同じ
顧客値を持つ行のみが複製と見なされることを意味します。
順序句は、行が処理される順序を定義します。各
顧客グループの最初の行は、最高の合計値を持つ行になります。複数の行の最大合計値がある場合、決定的な係数は
id 列が定義される順序になります。
キーポイント
であることは、どの式が複製を決定するかを指定できるPostgreSQLの拡張です。
式で明確な
式で順序で
句の順序に一致する必要があります。 条項による
句を使用して、各グループの優先度を決定することができます。 または
orderで句には
句ではないにない式を含めることができます。
、
合計、および
id 列に及ぶマルチコラムインデックスがクエリと同じ順序で最高のパフォーマンスを提供します。
追加の指示
は、 on
メソッドは、列の枢機inal(顧客あたり少数の行)を持つデータにとって非常に効率的です。ただし、 customer
列(顧客あたりの多数の行)のカーディナリティが低いデータの場合、他のクエリテクニックがより効率的になる場合があります。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3