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

Брой ключове на 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;

Връща:

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

Връщането му, както показахте, не ми се струва страхотна идея (какво бихте искали да направите, ако има 4 милиарда различни стойности?), но винаги можете да завъртите във вашето приложение или да промените заявката, за да извършите завъртането.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Разрешаване само на роли в потребителския списък на postgres

  2. Запитване на PostgreSQL за отчет Open-High-Low-Close (OHLC).

  3. Принудително прекъсване на връзката на клиента с помощта на PostgreSQL

  4. Postgres ON CONFLICT зададена колона препратка е двусмислена

  5. Как да дефинирам псевдоним на оператор в PostgreSQL?