mysql - MYSQL 在单个查询中选择电影和投票平均值
问题描述
我有两个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
子句中声明:这适用于您从中选择的所有列movies
。另一方面,votes.starCount
由 function 聚合AVG
,因此它不需要是GROUP BY
子句的一部分。
推荐阅读
- nginx - 用 nginx rewrite 重写一个特定的参数
- python - 当有(经度、纬度、月、年)数据集时,用轮廓绘制 xarray
- vue.js - 为什么我的 Nuxt 应用程序在 PM2 下意外关闭?
- node.js - 动态 Web 抓取未返回完整的 NodeList
- c++ - std::bind 默默地放弃了参数?
- c# - 没有链接表/模型的多对多关系?
- mysql - 仅基于特定分隔符拆分字符串
- javascript - 云功能测试失败“无效请求,无法处理”。
- c++ - 删除使用 C++17 pmr 内存资源分配的多态对象
- reactjs - ant design - 带时间的日期选择器将 00:00:00 保存为时间?