MYSQL 在单个查询中选择电影和投票平均值

标签 mysql sql

我有两个 mysql 表

投票数:

user
movieid
starCount

电影:

id
title
description

我想获取表中每部电影的id,title,description,avg(starCount)

我尝试过:

select id,title,description,avg(starCount) 
from movies 
join votes on movies.id=votes.movieid

最佳答案

您的查询看起来不错,只是缺少一个 GROUP BY 子句:

select m.id, m.title, m.description, avg(v.starCount) 
from movies m
join votes v on movies.id = votes.movieid
group by m.id, m.title, m.description

每个非聚合列都必须在 GROUP BY 子句中声明:这适用于您从电影中选择的所有列。另一方面,votes.starCount 由函数 AVG 聚合,因此它不需要成为 GROUP BY 子句的一部分。

关于MYSQL 在单个查询中选择电影和投票平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55432897/

相关文章:

sql - ORACLE - 解释列值

php - "get"时的 Codeigniter undefined variable ,但 "get_where"时则不是

mysql - Ruby on Rails-迁移数据库时出现套接字错误

MySql 返回不正确的 AVG

mysql - 您的 SQL 语法有误;查看与您的 MySQL 服务器版本对应的手册,了解在 '-db' 附近使用的正确语法

mysql - 如何根据条件从 Varchar 列的子字符串中查询最大整数值

sql - 在 Oracle 中的每个级别计算最小值的分层查询

php - 如何在 MySQL 中按喜欢/不喜欢对评论进行排序

sql - 仅检查日期时间字段中的日期

mysql - 根据输入选择列