我有使用子查询 ( select min/max(date) from stage.stage_net_subscription_010_filter_and_net_pds
) 来查找表的最小和最大日期的查询。
似乎子查询经常重复。
- 有没有办法在没有 CTE的情况下重写查询,这样子查询就不会在每个循环中执行
- 另一种加快查询速度的方法是使用生成系列,而不是从带有日期的表中选择日期。任何线索是否会有所作为?
询问:
SELECT
dim_date.date AS date
, stage_net_subscription_020_classes.client_id AS client_id
, stage_net_subscription_020_classes.product_id AS product_id
FROM star.dim_date dim_date
CROSS JOIN stage.stage_net_subscription_020_classes stage_net_subscription_020_classes
where date >= (select min(date) from stage.stage_net_subscription_010_filter_and_net_pds)
and date <= (select max(date) from stage.stage_net_subscription_010_filter_and_net_pds);
您可以使用横向交叉连接,但我不明白您为什么要避免 CTE: