PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comment utiliser la fonction date_part pour diviser la valeur par mois en chaque jour et pays

L'équivalent Postgresql de DAY(LAST_DAY(sales_date)) serait :

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

L'expression SUM(country <> 'None') doit également être corrigé comme

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

Il peut être judicieux de définir cette fonction de compatibilité :

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

Alors la première expression devient simplement

extract(day from last_day(sales_date))