ホームページ >データベース >mysql チュートリアル >MySQL で各ディーラーの最小値を持つ行を取得するにはどうすればよいですか?
MySQL: 各ディーラーの最小値を持つ行の取得
当面のタスクには、各個別の最小値を持つ行をフェッチすることが含まれますID、名前、値などの列を含むデータベース テーブルからディーラーを取得します。
戦略:
この問題を解決するには、以下に 2 つの解決策を示します:
解決策 1:
SELECT t1.* FROM your_table t1 JOIN ( SELECT MIN(value) AS min_value, dealer FROM your_table GROUP BY dealer ) AS t2 ON t1.dealer = t2.dealer AND t1.value = t2.min_value
この解決策は、まず MIN() を使用して各ディーラーの最小値を見つけ、グループ化。次に、ディーラー列と min_value 列の INNER JOIN を使用して、この結果を元のテーブルと結合します。
解決策 2(推奨):
SELECT t1.* FROM your_table t1 LEFT JOIN your_table t2 ON t1.dealer = t2.dealer AND t1.value > t2.value WHERE t2.value IS NULL
解決策2 では、LEFT JOIN を使用して、同じディーラーでより高い値を持つ行が存在しない行を検索します。その結果、各ディーラーの最低値を持つ行が生成されます。
重要な注意事項:
Mysql のドキュメントには、この特定の問題に関する専用のページがあります。「Rows Holding the特定の列のグループごとの最大値/最小値」。追加情報と代替アプローチについては、このページを参照してください。
以上がMySQL で各ディーラーの最小値を持つ行を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。