mysql - SQL:如何总结几十年的计数?

标签 mysql sql

我正在学习 SQL 查询,有一个问题如下

“十年是连续十年的序列,例如 1982、1983...1991。对于每个十年,计算该十年中 DBLP 的出版物总数。”

我提出了一个用于每年计数的临时表,select count(id) as cnt,year from Publication group byyear

所以下一步是总结十年的 cnt。经过一番研究,我发现我可以使用 BETWEEN 运算符。不过,我还是需要一一指定范围。有没有更好的方法来做到这一点? (年份范围为1900 - 2015)

非常感谢。

最佳答案

我只需将年份除以十,然后发言(这可能是隐式完成的,但我对 MySQL 不太熟悉)。

SELECT (FLOOR(Year / 10) * 10) AS Decade, COUNT(id) AS Cnt
FROM Publication
GROUP BY FLOOR(Year/ 10)

这种方法的技巧是,我假设您想要 1900-19091910-19191920-1919...2010-2015。如果你的“连续十年”规则不符合这样的条件,你就必须添加一些算术。但听起来应该如此,即使事实并非如此,这对于用户来说可能更理想。

关于mysql - SQL:如何总结几十年的计数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25955049/

相关文章:

mysql - 使用全文搜索在mysql中搜索不完整的单词

mysql - 查询时不显示 mysql zerofill int 字段中的前导零

sql - Hive通过 ‘distinct’子句给出一条记录,但是 ‘count’是0

MYSQL:如何使用内部连接连接两个表,然后为以下示例计算第二个表的总数

mysql - 聚集索引在SQL查询上的性能

sql - 如何处理 SQL Server Select 查询中的特殊字符

mysql - 删除在一列中具有重复值但在另一列中具有不同值的行

python - 使用 Django ORM 中多对一表中的值查询不同的模型实例

INSERT INTO...ON DUPLICATE UPDATE 的 MySQL 索引

sql - 自动调用存储过程