java - 使用sql获取平均评分

标签 java sql

我有一个Java程序,可以对数据库中的电影进行评分,我想做的是使用sql来获取电影的平均评分,但不是所有电影的总体平均值。例如,如果 3 个不同的人对同一个电影 ID 进行评分,希望能够获得该平均值,但列表中将包含许多来自不同用户的多次评分的电影。那么我怎样才能得到不同人评价的所有电影的所有平均值呢?到目前为止我只能得到总体平均值。

表格为[电影电子邮件评级]

最佳答案

您没有提供架构。所以我猜测有两个表的列:

SELECT name, round( (film_total_ratings/number_of_ratings) , 2) as avg_rating
FROM 
( 
   SELECT COUNT(*) as number_of_ratings, film_id, 
   SUM(rating) as film_total_ratings 
   FROM  `rating` GROUP BY film_id 
) AA LEFT JOIN 
( SELECT id, name FROM `film`  ) BB ON BB.id = AA.film_id 

或者对于您提到的一张表:

SELECT FILM, (film_total_ratings/number_of_ratings) as avg_rating 
FROM( 
SELECT COUNT(*) as number_of_ratings, FILM, 
   SUM(RATING) as film_total_ratings 
   FROM  avg GROUP BY FILM 
) TMP_FILM

关于java - 使用sql获取平均评分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27177750/

相关文章:

sql - postgresql中trunc函数的替代

与临时表中的列进行比较时 SQL 排序规则冲突

sql - 如何将SQL DB下载到iOS的Core Data中

java - 在 String.format() 中选择参数

java - 为 Android 提供虚假速度(例如车辆)

java - 如何对多种语言进行排序?

mysql - 在 UPDATE 查询中使用 JOIN

mysql - 如何让 Magento 更快地保存产品?

java - 如何设置SQL Server连接池大小

Java:为数组赋值