首页 >数据库 >mysql教程 >如何在MySQL中高效检索每个经销商的最小值?

如何在MySQL中高效检索每个经销商的最小值?

DDD
DDD原创
2024-11-29 11:26:11231浏览

How to Efficiently Retrieve the Minimum Value for Each Dealer in MySQL?

在 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn