[英]SQL: How to sum up count for many decades?
我正在學習SQL查詢,並有如下問題
“十年是連續十年的序列,例如1982、1983 ... 1991。對於每個十年,請計算該十年中DBLP的出版物總數。”
我想出了一個臨時表,用於每年的計數, select count(id) as cnt, year from publication group by year
因此,下一步是總結十年的cnt。 經過研究,我發現可以使用BETWEEN運算符。 但是,我仍然需要一一指定范圍。 有什么更好的方法嗎? (年份范圍是1900年-2015年)
非常感謝你。
我只是將年份除以10,然后發言(這可能是隱式完成的,但我對MySQL並不超級熟悉)。
SELECT (FLOOR(Year / 10) * 10) AS Decade, COUNT(id) AS Cnt
FROM Publication
GROUP BY FLOOR(Year/ 10)
這種方法的訣竅是,我假設你想1900-1909
, 1910-1919
, 1920-1919
, ...
, 2010-2015
。 如果您的“連續十年”規則不是那樣,則必須添加一些算術運算。 但這聽起來應該是正確的,即使不是這樣,對於用戶來說也可能更理想。
經過一些研究,我發現GROUP BY和LEFT()可以提供很大幫助。
select LEFT(year, 3) as decade , sum(cnt) from
(select count(id) as cnt, year from publication group by year)
as T1
group by LEFT(year, 3)
;
結果是
十年
NULL 6
193 55
194 139
195 1066
196 8066
197 28449
198 93203
199 359628
200 1249767
201 947365
如果有更好的方法,請提出您的建議。 謝謝。
我是SQL的新手,所以這是我最簡單的答案。 也許會對您有幫助
SELECT(MAX(year_2)-MIN(year_1))/10.0
FROM data-X;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.