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

Jumlah kunci json postgres

CREATE TABLE test (id INT4 PRIMARY KEY, some_name TEXT, j json);
copy test FROM stdin;
01  TEST1   {"key1" : "value1", "key2": "value2", "key4": "value4"}
02  TEST1   {"key1" : "value1"}
03  TEST2   {"key1" : "value1", "key2": "value2", "key3":"value3"}
\.
with unpacked as (
    SELECT (json_each_text(j)).* FROM test
)
SELECT value, count(*) FROM unpacked WHERE key in ('key1', 'key2', 'key3') group by value;

Pengembalian:

 value  | count 
--------+-------
 value1 |     3
 value3 |     1
 value2 |     2
(3 rows)

Mengembalikannya seperti yang Anda tunjukkan menurut saya bukanlah ide yang bagus (apa yang ingin Anda lakukan jika ada 4 miliar nilai yang berbeda?), tetapi Anda selalu dapat melakukan pivot di aplikasi Anda, atau memodifikasi kueri untuk melakukan pivot.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara menggunakan daftar sebagai sumber parameter untuk kueri SQL dengan Vertx JDBC Client?

  2. Memvalidasi Cadangan PostgreSQL Anda di Docker

  3. Anotasi Jendela Django menggunakan kombinasi dengan klausa berbeda

  4. bagaimana cara menyimpan PostgreSQL jsonb menggunakan SpringBoot + JPA?

  5. Mengaktifkan dukungan PostgreSQL di PHP di Mac OS X