我有以下場景
圖片
對于每一年,我想顯示已結束專案數量最多的月份
到目前為止,我已經嘗試了以下方法:
SELECT COUNT(proj.projno) nr_proj, extract(month from proj.end_date) month
, extract(year from proj.end_date) year
FROM PROJ
GROUP BY extract(month from proj.end_date)
,extract(year from proj.end_date)
我正在獲取有關每年每月專案數量的資訊。誰能給我提示如何在每一年我只選擇專案數最多的記錄?
uj5u.com熱心網友回復:
您可以使用此解決方案使用max 分析函式來獲得每年的最大 nr_proj 值(按子句磁區),然后僅保留 nr_proj = mx 的行。
select t.nr_proj, t.month, t.year
from (
SELECT COUNT(proj.projno) nr_proj
, extract(month from proj.end_date) month
, extract(year from proj.end_date) year
, max( COUNT(proj.projno) ) over(partition by extract(year from proj.end_date)) mx
FROM PROJ
GROUP BY extract(month from proj.end_date), extract(year from proj.end_date)
) t
where nr_proj = mx
;
演示
uj5u.com熱心網友回復:
我認為以下內容將為您提供所需的內容(如果我了解要求)。它首先統計每個月的專案,然后逐年排列月份,最后它選擇第一名。
select dt "Most Projects Month", cnt "Monthly Projects"
from ( -- Rank month Count by Year
select to_char( dt, 'yyyy-mm') dt
, cnt
, rank() over (partition by extract(year from dt)
order by cnt desc) rnk
from (-- count number of in month projects for each year
select trunc(end_date,'mon') dt, count(*) cnt
from projects
group by trunc(end_date,'mon')
)
)
where rnk = 1
order by dt;
注意:未測驗,未提供資料。以后不要發布圖片,請參閱為什么沒有圖片。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/338229.html
