【发布时间】:2021-09-08 22:50:48
【问题描述】:
提供了一个子查询来创建一个视图,并且该视图应满足动态月份变量的需求。
这样的子查询:
select col1,col2,col3,col4, sum(money) as KPI_single_month from table1 group by col1,col2,col3,col4 where month='202104'
--月份不固定,可能是202103,202106
视图应该这样调用:
select col1,col2,col3,col4,KPI from view1 where month='202104'
--月份不固定,可能是202103,可能是202106
此视图的关键输出是 KPI,即从 202101 到 202104 的 KPI_single_month 之和。 如果月份是 202106,则从 1 月到 6 月求和(KPI_single_month)(共 6 个月)。
那么创建视图的难点在于月份变量是未知的,那么创建视图的SQL语句中要求和多少个子查询呢?谢谢!
【问题讨论】:
-
这应该在您的报告前端工具中处理。您可以在存储过程中执行此操作,但(至少在我看来)这不值得麻烦。
-
您可以尝试将
month添加到群组中。当然,您应该检查优化器是否能够将条件 i 推送到 select before 聚合中。
标签: sql teradata teradatasql