Postgres 10.5:创建物化视图时,列数据可能为空/空?

时间:2018-12-31 20:48:47

标签: postgresql materialized-views

我正在使用array_agg函数从两个表创建一个物化视图,以将字符串从table_b连接到table_a。本质上,column_c上的table_a是可为空的数字数组,对应于id的{​​{1}}列(该列只有table_b和{{1 }})。但是,实例化视图无法为id上的任何行都为空的行包含一行description

是否可以使实现(1)输入一个空数组;或(2)当table_a column_c值为空时为空值?

table_a

1 个答案:

答案 0 :(得分:1)

使用LEFT JOIN

CREATE MATERIALIZED VIEW my_materialized_view
AS
SELECT
  id,
  column_a,
  column_b,
  array_agg(description) as column_c
  -- or
  -- coalesce(array_agg(description), '{}') as column_c
FROM table_a
LEFT JOIN table_b on table_b.id = any(column_c)
GROUP BY table_a.id
ORDER BY table_a.id ASC
WITH DATA;