SQL:如何将年份组合在一起

时间:2014-12-17 07:28:22

标签: sql

 '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中执行此操作?

1 个答案:

答案 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