CREATE MATERIALIZED VIEW insights.portfolio_to_account_groups_mv AS
SELECT
p.portfolio_id,
'account_group_' || MD5(CAST((
p.portfolio_id || 'all'
) AS BYTEA)) AS account_group_id,
CAST('all' AS VARCHAR) AS type
FROM olap.portfolios_dm AS p
WHERE
p.disabled_at IS NULL AND NOT p.m_is_stub IS TRUE
UNION ALL
SELECT
p.portfolio_id,
'account_group_' || MD5(CAST((
p.portfolio_id || 'restricted'
) AS BYTEA)) AS account_group_id,
CAST('restricted' AS VARCHAR) AS type
FROM olap.portfolios_dm AS p
WHERE
p.disabled_at IS NULL AND NOT p.m_is_stub IS TRUE
UNION ALL
SELECT
p.portfolio_id,
'account_group_' || MD5(CAST((
p.portfolio_id || 'un_restricted'
) AS BYTEA)) AS account_group_id,
CAST('un_restricted' AS VARCHAR) AS type
FROM olap.portfolios_dm AS p
WHERE
p.disabled_at IS NULL AND NOT p.m_is_stub IS TRUE