MYSQL - 如何平均从内部连接表结果返回的投票

标签 mysql inner-join average

我是个初学者,请耐心等待。

我试图从一个表中获取 ID 号,以指向另一个表中的相同号码,该表保存一个名称值(即 rating.id 1 = names.id 1 和 names.name“bread”),我似乎已经做到了。然后我想在名称旁边显示平均评级,即取所有 rating.rate 值(范围从 1-5)并平均评级,并将其显示在产品旁边,然后订购 desc。例如:

name-------average rating

Coffee-----4.3

Bread------3.2

Cheese-----2.9

etc

到目前为止,它为我提供了所有产品名称,但显示产品名称的次数与评级相同,然后排名降序。没有多大用处。这就是我所拥有的:

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

感谢您的帮助!

最佳答案

您的示例似乎根本没有使用 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 中使用。

关于MYSQL - 如何平均从内部连接表结果返回的投票,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17478209/

相关文章:

php - 使用 PHP 从 JSON 数组解析营业时间、时段和工作日

mysql - 在 Mysql 中使用 "Order By"中的复杂表达式

mysql - 数据库设计-设计M-N关系

mysql复杂的更新和替换

php - 如何在同一台服务器上内部连接两个不同 mysql 数据库中的两个表?

PHP MySQL - 仅当不为空时才进行内部联接

jquery - 返回所有 JSON 值的平均值

MySQL:使用内存存储引擎来提高此查询的性能

java - 从 CSV 文件计算平均值

SQL 汇总和平均