查询查找记录数最多的十年

Fat*_*ora 0 mysql sql

我有一个包含以下表格的数据库:

ACTOR (id, fname, lname, gender)
MOVIE (id, name, year, rank)
DIRECTOR (id, fname, lname)
CAST (a_id, m_id, role)
MOVIE_DIRECTOR (d_id, m_id)
Run Code Online (Sandbox Code Playgroud)

现在我想检索以下问题的数据。

十年是连续十年的序列。例如,1965, 1966, ..., 1974 是一个十年,1967, 1968, ..., 1976 也是如此。 找出电影数量最多的十年

Gor*_*off 7

我会通过生成年份,加入电影,然后聚合来做到这一点:

select y.year as decade_start, y.year + 9 as decade_end,
       count(*) as num_movies
from (select distinct year from movies) y join
     movies m
     on m.year >= y.year and m.year < y.year + 10
group by y.year
order by count(*) desc
limit 1;
Run Code Online (Sandbox Code Playgroud)