Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Agrupar por mês no Oracle


O operador de concatenação no Oracle é || . Não + :
SQL> select 'a' +' b' from dual;
select 'a' +' b' from dual
       *
ERROR at line 1:
ORA-01722: invalid number
SQL> select 'a' || 'b' from dual;

'A
--
ab

Além disso, YEAR é uma função MySQL. Na Oracle, você usará EXTRACT(YEAR FROM ....)

Por fim, você conhece o TO_CHAR função?

Portanto, você deve reescrever toda a sua consulta como:
SELECT TO_CHAR(day_date, 'MM-YYYY') AS MY_DATE,
       sum(cash_sales) as cash_sales, sum(unit_sales) as unit_sales
FROM NC_SALES_CAT_TL
GROUP BY TO_CHAR(day_date, 'MM-YYYY')