在SQL (Oracle)中仅按月和年显示数据



我有一组数据,我想显示过去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

有用:

tbody> <<tr>
MAX(ORDERDATE)MIN(ORDERDATE)
2021-12-01就是2020-01-02就是

您可以使用:

ORDER BY MIN(orderdate) DESC;

按月份开始的字符串表示排序不会产生您想要的结果。

您可以尝试order by TO_NUMBER(TO_CHAR(orderdate,'MM'))提取月份作为数字,然后使用它来排序。

相关内容

  • 没有找到相关文章

最新更新