【发布时间】:2021-02-02 16:49:53
【问题描述】:
我们正在执行一个 dice olap 查询,以获取某个制作公司在特定年份的总收入,其架构如下:
使用这个查询:
SELECT PC.name, RC.year, SUM(revenue) as total_revenue
FROM movies_reception_facts MR
JOIN ref_calendar RC ON MR.release_date_key = RC.date_key
JOIN pc_groups PG ON MR.pc_group_key = PG.pc_group_key
JOIN movies_pc MP ON PG.pc_group_key = MP.pc_group_key
JOIN production_companies PC ON MP.pc_id = PC.pc_id
WHERE PC.pc_id IN(
SELECT pc_id
FROM production_companies
WHERE name = 'Disney') AND
RC.date_key IN(
SELECT RC.date_key
FROM ref_calendar
WHERE RC.year = 2014
)
GROUP BY (PC.name, RC.year)
问题在于,它仅在年份设置为 2014 年时返回结果:WHERE RC.year = 2014。任何其他值都将返回一个空行。
【问题讨论】: