PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Имена на динамични колони в изглед (Postgres)

Първият ми наклон е да създам тази таблица:

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

и т.н. и го завъртете. Така че ще започнете с (например):

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);

След това можете да включите това в един crosstab функции от tablefunc модул за да постигнете опорната точка, като направите нещо подобно:

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. как да изчислим времето между два времеви клейма (PostgreSQL)

  2. Инсталиране на Orafce.sql 3.0 в Windows 7

  3. Контролиране на продължителността на изчакване за заключване на PostgreSQL

  4. Как да архивирам моята база данни PostgreSQL с Cron?

  5. Конфигурирайте PHP и PostgreSQL в Windows