Postgres 10.5:创建列数据可能为 empty/null 的物化视图?

Postgres 10.5: Create Materialized View where column data may be empty/null?

我正在从两个表创建实体化视图,使用 array_agg 函数连接从 table_btable_a 的字符串。本质上,table_a 上的 column_c 是一个可以为空的数字数组,对应于 table_bid 列(只有两列,iddescription).但是,实体化视图无法包含 table_a 上任何行的行,该行在 column_c 上为空/空。

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

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

使用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;