sql >> Database >  >> RDS >> PostgreSQL

Aantal Postgres json-sleutels

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;

Retourneren:

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

Het teruggeven zoals je liet zien, lijkt me niet zo'n geweldig idee (wat zou je willen doen als er 4 miljard verschillende waarden zijn?), maar je kunt altijd draaien in je app, of de query aanpassen om het draaien te doen.




  1. Hoe een SSIS-pakket uit te voeren vanuit .NET?

  2. Django uniek samen beperking falen?

  3. Parallelliseren van oproepen in PL/SQL

  4. Wat is het verschil tussen LATERAL JOIN en een subquery in PostgreSQL?