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

Sådan bruger du date_part-funktionen til at opdele værdi pr. måned til hver dag og land

Postgresql-ækvivalenten til DAY(LAST_DAY(sales_date)) ville være:

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

Udtrykket SUM(country <> 'None') skal også rettes som

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

Det kan være en god idé at definere denne kompatibilitetsfunktion:

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

Så bliver det første udtryk simpelt

extract(day from last_day(sales_date))


  1. Har brug for hjælp igen til at deltage i borde

  2. hvad er nytten af ​​array type?

  3. Sådan installeres PostgreSQL 12 på Fedora 33

  4. Postgresql 9.x:Indeks for at optimere `xpath_exists` (XMLEXISTS) forespørgsler