繁体   English   中英

Oracle-SQL 按年分组

[英]Oracle-SQL group by year

我有下表格式的数据

Start date  Unit_id
1-Jan-20    1
20-Jan-20   2
2-Feb-19    3
4-Feb-20    4
30-Mar-20   5

从上表中,我需要编写一个查询来给我以下答案:

Year    Month   Count
2020    Jan      2
2020    Feb      1
2020    Mar      1
2019    Feb      1

你只想按月聚合吗?

select to_char(startdate, 'YYYY') as year,
       to_char(startdate, 'Mon') as mon,
       count(*)
from t
group by to_char(startdate, 'YYYY'),
         to_char(startdate, 'Mon')
orderby min(startdate);

您可以按月使用trunc并按如下方式对它们进行group

SELECT
    TO_CHAR(TRUNC(STARTDATE, 'Mon'), 'YYYY') AS YEAR,
    TO_CHAR(TRUNC(STARTDATE, 'Mon'), 'Mon') AS MONTH,
    COUNT(1)
FROM
    YOUR_TABLE T
GROUP BY
    TRUNC(STARTDATE, 'Mon');

干杯!!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM