表是PC(代码,型号,速度,内存,高清,CD,价格) 我使用了这个查询:
SELECT distinct speed, AVG(price) AS avg_price
FROM pc where speed > 600 group by speed,price
但它正在显示
但正确的输出是
答案 0 :(得分:1)
您只需要按速度对其进行分组,只需从group by子句中删除价格部分,如下所示:
SELECT speed, AVG(price) AS avg_price
FROM pc
WHERE speed > 600
GROUP BY speed
编辑:此外,由于聚合的工作原理,因此无需区分行,因为它们已经区分开来。
答案 1 :(得分:1)
您应该计算每个速度的平均价格。通过在price
条款中添加group by
,您可以为price
和speed
的每个组合生成一个不同的行(平均价格,每个价格,价格)本身)。把它放在那里,你应该没问题:
SELECT speed, AVG(price) AS avg_price
FROM pc
WHERE speed > 600
GROUP BY speed
(顺便说一句,在分组列中使用distinct
在技术上并不是错误的,但它是多余的)。