我有一个带有生产者和产品表的数据库,我正在试图找到平均价格最高的产品的生产者。基本上,我要找出每个生产者的平均水平,然后找出平均价格最高的生产者,如果他们有相同的平均水平,就可以有多个生产者拥有最昂贵的平均水平。
我尝试了下面的代码,但不明白为什么它不起作用?
忘记提到这是针对SQL的。
编辑:忘了说结果应该只显示最昂贵的平均值。
SELECT producerId, average
FROM (SELECT producerId, AVG(productPrice) AS average
FROM product NATURAL JOIN producer
GROUP BY producerId) AS averages
WHERE MAX(average) 例子: producerID \x{e 010}平均值
1 | 10
2 | 8.5
3 | 10
4 | 9
5 | 8结果:平均producerID值
1 | 10
3 | 10发布于 2015-04-12 17:06:23
如果您想获得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
https://stackoverflow.com/questions/29591585
复制相似问题