我得到了一张年数和人名表,现在我需要找出在那一年到下一个10年之间的人的数量。这是如何做到的呢?这里的年份可以是重叠的,比如1965-74年和1972-81年等。
我试过
select concat(hindi2_MOVIE.year, '-', hindi2_MOVIE.year+10) as `range`,
count(*) as `number of users`
from hindi2_MOVIE
where hindi2_MOVIE.year between hindi2_MOVIE.year and hindi2_MOVIE.year + 10
group by 1
order by hindi2_MOVIE.year;但我得到的只是年数?
发布于 2014-03-20 17:13:29
我想这会对你有用的
SELECT per_year.year, SUM(per_year.count) as total_decade
FROM hindi2_MOVIE INNER JOIN
(SELECT count(*) as count, year FROM hindi2_MOVIE GROUP BY year) per_year ON hindi2_MOVIE.year >= per_year.year AND hindi2_MOVIE.year < per_year.year + 10
GROUP BY hindi2_MOVIE.year发布于 2014-03-20 16:52:48
如果你每年都有电影,那就试试这个:
选择concat(min(m.year),'-',max(m.year))作为range,从hindi2_MOVIE m组逐层选择计数(*)为number of users ((m.year/ 10)按min(m.year)排序);
我对查询做了几处更改:
where子句。它什么也没做。min()和max()。这指定范围内的实际年份。group by改为10除,然后发言。这样,几十年通常是2000-2009,2010-2019,等等。https://stackoverflow.com/questions/22539552
复制相似问题