mysql - 尝试查找平均值最大的记录 (SQL)

标签 mysql sql

我有一个包含生产商和产品表的数据库,我正在尝试查找平均产品最昂贵的生产商。基本上,我必须找到每个生产商产品的平均值,然后找到平均值最昂贵的生产商,其中如果它们具有相同的平均值,则可以有多个生产商具有最昂贵的平均值。

我尝试了下面的代码,但不明白为什么它不起作用?

忘记提及这是针对 SQL 的。

编辑:忘记说结果应该只显示最昂贵的平均值

SELECT producerId, average 
FROM (SELECT producerId, AVG(productPrice) AS average 
      FROM product NATURAL JOIN producer 
      GROUP BY producerId) AS averages 
WHERE MAX(average) 

示例: 生产者 ID |平均

1      |    10
2      |    8.5
3      |    10
4      |    9
5      |    8

结果: 生产者 ID |平均

1      |   10
3      |   10

最佳答案

如果您想获得 3 个最昂贵的生产商,请使用如下查询:

SELECT producerId, average
FROM (
    SELECT pr.producerId, AVG(pr.productPrice) AS average
    FROM product AS pp INNER JOIN producer AS pr ON pp.producerId = pr.producerId
    GROUP BY pr.producerId
 ) AS T
 ORDER BY average DESC
 LIMIT 3;

有关更多信息,请参阅文档:https://dev.mysql.com/doc/refman/5.0/en/select.html

关于mysql - 尝试查找平均值最大的记录 (SQL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29591585/

相关文章:

mysql - 如何将 order by 与 LENGTH() 函数一起使用

php - htmlspecialchars 错误使用?

网络分析的SQL查询6度分离

sql - 从产品中为 Azure SQL 创建开发环境

mysql - 如何创建条目有限的 SQL 表?

sql - Hive 中的时间戳解析

php - MySQL 联合丢失表名

php - 我如何限制它以排除重复项?我的消息出现了两次,因为我与多个人成为 friend

python - 通过 django-admin 添加带有波兰标志的记录时出现操作错误

mysql - 我正在使用 2 个查询,有什么方法可以使它成为单个查询