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 अरब अलग-अलग मान हैं तो आप क्या करना चाहेंगे?), लेकिन आप हमेशा अपने ऐप में पिवट कर सकते हैं, या पिवट करने के लिए क्वेरी को संशोधित कर सकते हैं।पी>