You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何统计每个用户评分的电影数量?(附表结构及尝试SQL)

正确统计每个用户评分电影数量的SQL实现

涉及数据表结构

  • movie_table:包含字段id(主键)、name、year,存储电影基础信息
  • movierating_table:包含字段userid、movieid(外键关联movie_table.id)、rating,存储用户对电影的评分记录

原SQL的问题

你写的SQL存在语法错误(多余的id、WHERE子句写法不符合规范),而且缺少分组逻辑,没法实现“每个用户评分电影数量”的统计需求。

正确实现方案

方案1:直接基于评分表统计(推荐,外键已保证movieid有效)

SELECT userid, COUNT(movieid) AS rated_movie_count
FROM movierating_table
GROUP BY userid;

方案2:关联电影表统计(适用于外键约束不严格的场景)

如果需要确保统计的是真实存在的电影记录,可以关联movie_table:

SELECT mr.userid, COUNT(mt.name) AS rated_movie_count
FROM movierating_table mr
INNER JOIN movie_table mt ON mr.movieid = mt.id
GROUP BY mr.userid;

过滤特定用户的统计

如果只需要统计指定用户(比如1500、2000)的评分数量,添加WHERE子句即可:

SELECT userid, COUNT(movieid) AS rated_movie_count
FROM movierating_table
WHERE userid IN (1500, 2000)
GROUP BY userid;

关键说明

  • GROUP BY userid 是实现按用户分组统计的核心,它会将相同userid的记录归为一组,COUNT函数计算每组内的电影评分数量
  • COUNT(movieid)、COUNT(mt.name) 或 COUNT(*) 都可以完成统计,使用具体字段更能明确统计的对象(需确保字段不为空)

内容的提问来源于stack exchange,提问作者vishnu k

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 13:37:39