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

Dynamiczne nazwy kolumn w widoku (Postgres)

Moim pierwszym zamiarem jest wykonanie tej tabeli:

+---------+-------+--------+
| Country | Month | Amount |
+---------+-------+--------+
| UK      | Jan   | 4      |
+---------+-------+--------+
| UK      | Feb   | 12     |
+---------+-------+--------+

itp. i obracaj go. Zacząłbyś więc od (na przykład):

SELECT 
  c.country, 
  EXTRACT(MONTH FROM s.eldate) AS month, 
  COUNT(*) AS amount
FROM country AS c
JOIN site AS s ON s.country_id = c.id
WHERE 
  s.eldate > NOW() - INTERVAL '1 year'
GROUP BY c.country, EXTRACT(MONTH FROM s.eldate);

Następnie możesz podłączyć to do jednej crosstab funkcje z tablefunc moduł aby osiągnąć punkt obrotu, robiąc coś takiego:

SELECT * 
FROM crosstab('<query from above goes here>') 
  AS ct(country varchar, january integer, february integer, ... december integer);


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tygodnie między dwiema datami

  2. Czy usługa PostgreSQL w klastrze OpenShift może odbierać ruch zewnętrzny przez ujawnioną trasę?

  3. Wycofaj transakcję w przypadku błędu wyzwalacza

  4. PostgreSQL ilike z wieloma dopasowaniami w Rails ActiveRecord

  5. Sprzężenie wewnętrzne kontra robienie gdzie w klauzuli