PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Jak używać funkcji date_part, aby podzielić wartość na miesiąc na każdy dzień i kraj?

Odpowiednik Postgresql DAY(LAST_DAY(sales_date)) byłoby:

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

Wyrażenie SUM(country <> 'None') również należy naprawić jako

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

Dobrym pomysłem może być zdefiniowanie tej funkcji zgodności:

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

Wtedy pierwsze wyrażenie staje się po prostu

extract(day from last_day(sales_date))


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL:Jak zaimplementować minimalną kardynalność?

  2. Problem podczas pobierania rekordów z pustą tablicą

  3. Railsy oczekujące na migrację w rake db:test:prepare

  4. SELECT .. INTO, aby utworzyć tabelę w PL/pgSQL

  5. Zwiększanie wydajności PostgreSQL dzięki HAProxy