假设我有产品和分数表。
Product
-------
id
name
Score
-----
id
ProductId
ScoreValue
我想获取 AVERAGE 分数最高的前 10 个产品,如何在一个 select 语句中获取平均值并选择前 10 个产品?
这是我的,它选择了意外的行
SELECT TOP 10 Product.ProductName Score.Score
FROM Product, Score
WHERE Product.ID IN (select top 100 productid
from score
group by productid
order by sum(score) desc)
order by Score.Score desc
最佳答案
这可能会做到
SELECT TOP 10 p.ProductName, avg( s.Score ) as avg_score
FROM Product p
inner join Score s on s.product_id = p.product_id
group by p.ProductName, p.product_id
order by avg_score desc
关于sql - 选择平均分最高的前10名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16214205/