CREATE MATERIALIZED VIEW insights.benchmark_twrr_by_distribution_mv AS
SELECT
c.benchmark_id,
c.fact_date,
ad.distribution_type,
ad.item_id,
SUM(a.daily_subperiod_return * c.weight * ad.share) AS daily_subperiod_return
FROM olap.basket_index_benchmark_constituents_ft AS c
JOIN insights.asset_twrr_mv AS a
ON a.asset_id = c.asset_id AND a.fact_date = c.fact_date
JOIN insights.asset_distributions_for_consumers_mv AS ad
ON ad.asset_id = c.asset_id
AND c.fact_date >= ad.effective_start_date
AND c.fact_date < ad.effective_end_date
WHERE
c.disabled_at IS NULL AND NOT a.daily_subperiod_return IS NULL
GROUP BY
c.benchmark_id,
c.fact_date,
ad.distribution_type,
ad.item_id