【发布时间】:2018-06-01 05:27:00
【问题描述】:
我正在尝试在 Oracle 中编写一个查询,该查询将按月和年对日期进行分组,然后将它们整齐地排序。 除此之外,月份必须显示它的名称而不是它的月份编号。
我目前的查询是:
SELECT to_char(datumgeleend, 'MONTH') as "Maand geleend",
to_char(datumgeleend, 'YYYY') as "Jaar geleend", SUM(bedrag)
FROM lening
GROUP BY to_char(datumgeleend, 'MONTH'), to_char(datumgeleend, 'YYYY')
ORDER BY to_char(datumgeleend, 'YYYY'), to_char(datumgeleend, 'MONTH') DESC;
问题是顺序按月份的第一个字母而不是月份的数字。
所以我想修正一下,我将查询稍微调整为:
SELECT to_char(datumgeleend, 'MONTH') as "Maand geleend",
to_char(datumgeleend, 'YYYY') as "Jaar geleend", SUM(bedrag)
FROM lening
GROUP BY to_char(datumgeleend, 'MONTH'), to_char(datumgeleend, 'YYYY')
ORDER BY to_char(datumgeleend, 'YYYY'), extract(month from datumgeleend)
DESC;
不幸的是,这个查询产生了以下错误:
ORA-00979: not a GROUP BY expression
【问题讨论】:
标签: oracle group-by sql-order-by