[英]How can I aggregate values inside a jsonb array using SQL
我的數據看起來像這樣:
tags | fullName
----------------------------------------------+------------------------------------------
["tag1", "tag2"] | John
["tag3", "tag1"] | Jane
["tag1", "tag3"] | Bob
tags 是jsonb
類型,fullName 是 postgres 數據庫中的text
我正在努力做的是,創建一個視圖,如
tags | count
----------------------------------------------+------------------------------------------
tag1 | 3
tag2 | 1
tag3 | 2
在分組和計數之前,您可以使用jsonb_array_elements
函數將行擴展為數組元素。
請參閱下面的示例和工作小提琴。
SELECT
tag_names as tag,
COUNT(1) as count
FROM (
SELECT
jsonb_array_elements(tags) as tag_names
FROM
my_table
) t
GROUP BY tag_names;
標簽 | 數數 |
---|---|
標簽 1 | 3 |
標簽2 | 1 |
標簽3 | 2 |
或更短
SELECT
jsonb_array_elements(tags) as tag,
COUNT(1) as count
FROM
my_table
GROUP BY
tag
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.