Oracle - SQL по годам - PullRequest
       0

Oracle - SQL по годам

0 голосов
/ 13 марта 2020

У меня есть данные в формате таблицы ниже

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

Ответы [ 2 ]

0 голосов
/ 13 марта 2020

Вы можете использовать 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');

Cheers !!

0 голосов
/ 13 марта 2020

Вы просто хотите агрегировать по месяцам?

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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...