簡體   English   中英

SQL:數十年來如何總結計數?

[英]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-19091910-19191920-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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM