0

我是初学者,请多多包涵。

我试图从一个表中获取 ID 号以指向另一个表中的相同数字,该表包含一个名称值(即 rating.id 1 = names.id 1 和 names.name “面包”),我似乎管理。然后我想在名称旁边显示平均评分,即取所有 rating.rate 值(范围从 1-5)并平均评分,并将其显示在产品旁边,然后订购 desc。如 :

name-------average rating

Coffee-----4.3

Bread------3.2

Cheese-----2.9

etc

到目前为止,它给了我所有的产品名称,但显示产品名称的次数与它的评级一样多,然后排名 desc。没多大用处。这就是我所拥有的:

SELECT rating.rate, names.name FROM rating INNER JOIN names ON rating.id = names.id ORDER BY rating.rate DESC LIMIT 0, 25 GROUP BY names.name

谢谢您的帮助!

4

1 回答 1

0

您的示例似乎根本没有使用 AVG 功能?下面的呢?

SELECT AVG(rating.rate) as avg_rating, names.name 
  FROM rating 
  JOIN names 
    ON rating.id = names.id
GROUP BY names.name
ORDER BY avg_rating DESC
LIMIT 0, 25    

由于 GROUP BY,这将平均每个名称的评级。AVG 的结果被放入 avg_rating 并在 ORDER BY 中使用。

于 2013-07-04T21:33:56.500 回答