我有一组数据,我想显示过去12个月按月分组和排序的每月交易。
我的代码当前是:
SELECT
to_char(orderdate, 'MM-YYYY') AS MONTH_AND_YEAR
,SUM(VALUE) AS TOTAL_SALES
,ROUND(AVG(VALUE),2) AS AVERAGE_SALE_VALUE
,MIN(VALUE) AS MINIMUM_SALE_VALUE
,MAX(VALUE) AS MAXIMUM_SALES_VALUE
FROM ORDER_TABLE
WHERE OrderDate >= ADD_MONTHS( TRUNC(SYSDATE), -12 )
GROUP BY to_char(orderdate, 'MM-YYYY')
ORDER BY to_char(orderdate, 'MM-YYYY') DESC;
但是返回:
MONTH_AND_YEAR
12 - 2021
12 - 2020
11 - 2021
11 - 2020
10 - 2021
10 - 2020
09 - 2021
09 - 2020
08 - 2021
08 - 2020
07 - 2020
06 - 2020
05 - 2021
05 - 2020
04 - 2021
04 - 2020
03 - 2021
03 - 2020
02 - 2020
01 - 2021
01 - 2020
有用:
MAX(ORDERDATE) | MIN(ORDERDATE) | 2021-12-01就是 | 2020-01-02就是 |
---|
您可以使用:
ORDER BY MIN(orderdate) DESC;
按月份开始的字符串表示排序不会产生您想要的结果。
您可以尝试order by TO_NUMBER(TO_CHAR(orderdate,'MM'))
提取月份作为数字,然后使用它来排序。