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

如何编写SQL语句查询2016年请求量最高的电影分类

2016年用户请求量最高电影分类查询SQL

首先基于你提供的数据库结构,默认涉及3张核心表,关联逻辑如下:

  • categories:电影分类表,包含category_id(分类唯一标识)、category_name(分类名称)字段
  • movies:电影信息表,包含movie_id(电影唯一标识)、category_id(关联分类表的外键)字段
  • user_requests:用户请求记录表,包含request_id(请求唯一标识)、movie_id(关联电影表的外键)、request_time(请求发生时间)字段

如果你只需要取任意一个最高请求量的分类,可直接使用如下SQL:

SELECT c.category_name, COUNT(ur.request_id) AS request_total
FROM user_requests ur
INNER JOIN movies m ON ur.movie_id = m.movie_id
INNER JOIN categories c ON m.category_id = c.category_id
WHERE EXTRACT(YEAR FROM ur.request_time) = 2016
GROUP BY c.category_id, c.category_name
ORDER BY request_total DESC
LIMIT 1;

不同数据库的日期过滤语法可以自行替换:MySQL/SQL Server 可直接用YEAR(ur.request_time) = 2016,PostgreSQL 可替换为DATE_PART('year', ur.request_time) = 2016

如果需要查询所有并列最高请求量的分类(即满足「最高分类之一」的全量匹配需求),可使用窗口函数实现:

WITH category_request_rank AS (
    SELECT 
        c.category_name,
        COUNT(ur.request_id) AS request_total,
        RANK() OVER(ORDER BY COUNT(ur.request_id) DESC) AS rank_num
    FROM user_requests ur
    INNER JOIN movies m ON ur.movie_id = m.movie_id
    INNER JOIN categories c ON m.category_id = c.category_id
    WHERE EXTRACT(YEAR FROM ur.request_time) = 2016
    GROUP BY c.category_id, c.category_name
)
SELECT category_name, request_total
FROM category_request_rank
WHERE rank_num = 1;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 20:24:05