'SELECT year, scores FROM database'
如果我的数据类似于
year score
1901 100
1902 300
1902 300
1911 300
1921 100
. .
. .
. .
2000
我有兴趣以10人为一组来看这些年,并总结他们各自的分数。 因此,对于1901年至1910年,总得分将是700.对于1911年 - 1920年,它将是300.我如何在SQL中执行此操作?
答案 0 :(得分:4)
取决于您的实际DBMS:
select cast( (year / 10) as integer) * 10 as year_group,
sum(score)
from scores
group by year_group
order by year_group;
以上是ANSI SQL,可以在许多DBMS上使用。但是,所有DBMS都不支持cast()运算符,因此DBMS的语法可能略有不同。
SQLFiddle:http://sqlfiddle.com/#!15/7e4fb/1