PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Liczba kluczy 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;

Zwroty:

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

Zwrócenie go w sposób, w jaki pokazałeś, nie wydaje mi się świetnym pomysłem (co byś chciał zrobić, jeśli istnieją 4 miliardy różnych wartości?), ale zawsze możesz przestawić w swojej aplikacji lub zmodyfikować zapytanie, aby wykonać przestawianie.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak połączyć się z bazą danych PostgreSQL przez SSL?

  2. Zapytanie PostgreSQL działa szybciej dzięki skanowaniu indeksu, ale silnik wybiera połączenie haszowe

  3. Jak używać Postgresa jsonb '?' operator w Laravel z obsługą indeksów?

  4. Dodawanie tabeli użytkowników/kont do Postgresa w Django View

  5. Co się stało z NpgsqlCopySerialize i NpgsqlCopyIn