PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Come utilizzare la funzione date_part per dividere il valore al mese in ogni giorno e paese

L'equivalente Postgresql di DAY(LAST_DAY(sales_date)) sarebbe:

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

L'espressione SUM(country <> 'None') deve anche essere corretto come

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

Potrebbe essere una buona idea definire questa funzione di compatibilità:

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

Quindi la prima espressione diventa semplicemente

extract(day from last_day(sales_date))