PostgreSQL对数组元素聚合基本方法示例


    目录
  • 前言
  • 表 jounal 结构示例
  • sql 语句

    前言
  • 本文对 PostgreSQL 14.x 适用
  • 实现的方式是用 unnest 将

    表 jounal 结构示例
    
id      author
 2    [张三, 李四, 王五]
 2    [张三, 李四]
 3    [张三]

    聚合结果
    
    item  cnt
    张三    3
    李四    2
    王五    1
    sql 语句
    sql 语句写法一
    
select item, count(item) as cnt
from (select unnest(journal.author) as item from journal) as tmp
group by item

    sql 语句写法二
    
select item, count(distinct id) as cnt
from journal, unnest(journal.author) as item
group by item

    sql 语句写法三
    
select item, count(item) as cnt
from journal, unnest(journal.author) as item 
group by item

    相关链接
    
  • How to group result by array column in Postgres?
  • Group by unique items in an array column and count records that contain each item