表中有個欄位為“日期”,如下:
日期
-------
2016-2-3
2016-4-5
2017-8-9
2017-10-11
2018-3-4
…
我知道,按年份分組統計,陳述句是這樣的:
SELECT Year(日期) AS 年份, ……
FROM 表名
……
GROUP Year(日期)
現在的需求是,如果是一般的年份,還是跟上面一樣按年份分組統計,如果 年份=2017 ,就要分別統計“2017-05-01以前” 和 “2017-05-01至年底”兩個期間的資料。
請問可以實作嗎?
uj5u.com熱心網友回復:
SELECT Year(日期) AS 年份, ……FROM 表名
where Year(日期) <> 2017
……
GROUP by Year(日期)
union all
select
sum(case when 日期<to_date('2017-5-1','yyyy-mm-dd') then 要統計額值 else 0),
sum(case when 日期>=to_date('2017-5-1','yyyy-mm-dd') then 要統計額值 else 0)
……
from 表名 where Year(日期) = 2017
uj5u.com熱心網友回復:
SELECT Year(日期) AS 年份, ……FROM 表名
where Year(日期) <> 2017
……
GROUP by Year(日期)
union all
select
sum(case when 日期<to_date('2017-5-1','yyyy-mm-dd') then 要統計額值 else 0 end),
sum(case when 日期>=to_date('2017-5-1','yyyy-mm-dd') then 要統計額值 else 0 end)
……
from 表名 where Year(日期) = 2017
uj5u.com熱心網友回復:
group by decode(to_char(to_date(t1.dat, 'yyyy-mm-dd'), 'yyyy'), '2017',
to_char(sign(to_date(t1.dat, 'yyyy-mm-dd') - to_date('20170501', 'yyyymmdd') + 1)),
t1.dat)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/44722.html
標籤:開發
