sql >> Base de Datos >  >> RDS >> PostgreSQL

Cómo usar la función date_part para dividir el valor por mes para cada día y país

El equivalente de Postgresql de DAY(LAST_DAY(sales_date)) sería:

extract(day from (date_trunc('month', sales_date + interval '1 month') - interval '1 day'))

La expresión SUM(country <> 'None') también necesita ser arreglado como

SUM(case when country <> 'None' then 1 else 0 end)

Puede ser una buena idea definir esta función de compatibilidad:

create function last_day(d date) returns date as
$$
  select date_trunc('month', d + interval '1 month') - interval '1 day';
$$ language sql immutable;

Entonces la primera expresión se convierte simplemente

extract(day from last_day(sales_date))