PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Số lượng khóa postgres json

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;

Lợi nhuận:

Giá trị
 value  | count 
--------+-------
 value1 |     3
 value3 |     1
 value2 |     2
(3 rows)

Trả lại nó như bạn đã cho tôi thấy không phải là một ý tưởng tuyệt vời (bạn sẽ muốn làm gì nếu có 4 tỷ giá trị khác nhau?), Nhưng bạn luôn có thể xoay vòng trong ứng dụng của mình hoặc sửa đổi truy vấn để thực hiện xoay vòng.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ở mức cơ bản nào, SQL Server chuyển sang quét chỉ mục (so với tìm kiếm)

  2. mục đích của đối chiếu trong Postgres

  3. Cách kiểm tra phiên bản PostgreSQL của bạn

  4. dblink không sử dụng tệp .pgpass

  5. postgresql cài đặt instace đơn