PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Nama kolom dinamis dalam tampilan (Postgres)

Kecenderungan pertama saya adalah membuat tabel ini:

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

dll dan memutarnya. Jadi Anda akan mulai dengan (misalnya):

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

Anda kemudian dapat menghubungkannya ke salah satu crosstab fungsi dari tablefunc modul untuk mencapai poros, lakukan sesuatu seperti ini:

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. Sudo gem install pg tidak akan berfungsi

  2. Apa itu byte datatype dan kapan saya akan menggunakannya?

  3. Pivot / tab silang dengan lebih dari satu kolom nilai

  4. Bagaimana saya bisa memasukkan dokumen XML di PostgreSQL di Jawa?

  5. Batas Kata Regex PostgreSQL?