在 MySQL 中检索每个经销商的最低价值
对于具有 id、名称、值和经销商列的数据库结构,问题如下:如何获取每个经销商的最低值的行。在尝试使用 MIN() 和 GROUP BY 解决方案时,没有取得令人满意的结果。
解决方案:
要解决此问题,有两种方法可用:
解决方案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
解决方案 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 比解决方案快得多1.
更多详情请参考MySQL手册:
https://dev.mysql.com/doc/refman/8.0/en/group-by-functions.html#function_row-number
以上是如何在MySQL中高效检索每个经销商的最小值?的详细内容。更多信息请关注PHP中文网其他相关文章!