簡體   English   中英

如何獲取前 6 個月的數據,從 oracle sql 中的當前月份開始按月分組?

[英]How to get previous 6 months data, group by each month starting with current month in oracle sql?

這是我的表:(DATE 在 TIMESTAMP 數據類型中……我在 DATE 中提到過)

DATE(DD/MM/YYYY)             VALUE
10/05/2020                    3
20/05/2020                    7
08/04/2020                    12
10/04/2020                    28
15/03/2020                    13
08/02/2020                    12
10/01/2020                    28
15/12/2019                    13
21/12/2019                    18
12/11/2019                    17

我想得到

MONTH             TOTAL
05/2020            10
04/2020            40
03/2020            13
02/2020            12
01/2020            28
12/2019            31

我應該只到 12 月,即從今天起 6 個月......提前謝謝!!!!

一點WHEREGROUP BY

SQL> with test (datum, value) as
  2  -- sample data
  3    (select timestamp '2020-05-10 00:00:00.000',  3 from dual union all
  4     select timestamp '2020-05-20 00:00:00.000',  7 from dual union all
  5     select timestamp '2020-04-08 00:00:00.000', 12 from dual union all
  6     select timestamp '2020-04-10 00:00:00.000', 28 from dual union all
  7     select timestamp '2020-03-15 00:00:00.000', 13 from dual union all
  8     select timestamp '2020-02-08 00:00:00.000', 12 from dual union all
  9     select timestamp '2020-01-10 00:00:00.000', 28 from dual union all
 10     select timestamp '2019-12-15 00:00:00.000', 13 from dual union all
 11     select timestamp '2019-12-21 00:00:00.000', 18 from dual union all
 12     select timestamp '2019-11-12 00:00:00.000', 17 from dual
 13    )
 14  -- query you need
 15  select to_char(datum, 'yyyy/mm') month,
 16         sum(value) total
 17  from test
 18  where datum >= add_months(trunc(sysdate), -6)
 19  group by to_char(datum, 'yyyy/mm')
 20  order by month desc;

MONTH        TOTAL
------- ----------
2020/05         10
2020/04         40
2020/03         13
2020/02         12
2020/01         28
2019/12         31

6 rows selected.

SQL>

嘗試以下

select
    to_char(date, 'MM-YYYY') as months,
    sum(value) as total 
from myTable
where date > SYSDATE - INTERVAL '6' MONTH
group by
    to_char(date, 'MM-YYYY')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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