【发布时间】:2019-09-04 06:55:14
【问题描述】:
我有一张桌子的样子。
tbl_work:
ACCOUNT TOTAL LAST_UPDATE_DATE
==============================================
21157 3779444 2018-01-02 00:00:00
21157 7200000 2018-01-04 00:00:00
21157 131275053 2018-02-01 00:00:00
21157 6646465 2018-02-02 00:00:00
21157 36268657 2018-03-01 00:00:00
21157 3622400 2018-03-02 00:00:00
21157 17201657 2018-04-04 00:00:00
21157 3549999 2018-04-07 00:00:00
21157 14364000 2018-05-02 00:00:00
21157 77726800 2018-05-04 00:00:00
这将按完整的 DateTime 分组,包括日期、小时和分钟。我希望仅按月和年 MM/YYYY 进行分组,并对其进行一些 SUM。
到目前为止,我已经尝试过:
SELECT ACCOUNT, SUM(total) AS TOTAL, TRUNC(created_date) AS LAST_UPDATE_DATE
FROM rkap_realisasi
WHERE account = '21157'
AND TRUNC(created_date) BETWEEN TO_DATE('1/1/2018', 'MM/DD/YYYY') AND TO_DATE('1/1/2019','MM/DD/YYYY')
GROUP BY account, EXTRACT(YEAR_MONTH FROM(TRUNC(created_date)))
但似乎效果不佳。
我的预期输出是:
ACCOUNT TOTAL LAST_UPDATE_DATE
=============================================
21157 10979444 2018-01-04 00:00:00
21157 137921518 2018-02-01 00:00:00
21157 39891057 2018-03-02 00:00:00
21157 20751656 2018-04-07 00:00:00
21157 92090800 2018-05-04 00:00:00
任何深思熟虑的建议将不胜感激。
谢谢。
【问题讨论】:
-
我确信 YEAR_MONTH 不是 Oracle 中 EXTRACT 的有效输入。或者如果是,请告诉我这个提取物的输出是什么?