diff --git a/.changes/unreleased/Fixes-20240625-114914.yaml b/.changes/unreleased/Fixes-20240625-114914.yaml
new file mode 100644
index 0000000000..16154061e9
--- /dev/null
+++ b/.changes/unreleased/Fixes-20240625-114914.yaml
@@ -0,0 +1,6 @@
+kind: Fixes
+body: Remove extraneous where filter subqueries added by predicate pushdown
+time: 2024-06-25T11:49:14.837794-07:00
+custom:
+ Author: tlento
+ Issue: "1011"
diff --git a/metricflow/dataflow/builder/dataflow_plan_builder.py b/metricflow/dataflow/builder/dataflow_plan_builder.py
index 70f30fc83f..70a19a869a 100644
--- a/metricflow/dataflow/builder/dataflow_plan_builder.py
+++ b/metricflow/dataflow/builder/dataflow_plan_builder.py
@@ -1602,7 +1602,9 @@ def _build_aggregated_measure_from_measure_source_node(
if set(filter_spec.linkable_specs).issubset(set(queried_linkable_specs.as_tuple))
]
if len(queried_filter_specs) > 0:
- output_node = WhereConstraintNode(parent_node=output_node, where_specs=queried_filter_specs)
+ output_node = WhereConstraintNode(
+ parent_node=output_node, where_specs=queried_filter_specs, always_apply=True
+ )
# TODO: this will break if you query by agg_time_dimension but apply a time constraint on metric_time.
# To fix when enabling time range constraints for agg_time_dimension.
diff --git a/metricflow/dataflow/nodes/where_filter.py b/metricflow/dataflow/nodes/where_filter.py
index 08b09ee435..04240a9029 100644
--- a/metricflow/dataflow/nodes/where_filter.py
+++ b/metricflow/dataflow/nodes/where_filter.py
@@ -13,13 +13,27 @@
class WhereConstraintNode(DataflowPlanNode):
"""Remove rows using a WHERE clause."""
- def __init__( # noqa: D107
+ def __init__(
self,
parent_node: DataflowPlanNode,
where_specs: Sequence[WhereFilterSpec],
+ always_apply: bool = False,
) -> None:
+ """Initializer.
+
+ WhereConstraintNodes must always have exactly one parent, since they always wrap a single subquery input.
+
+ The always_apply parameter serves as an indicator for a WhereConstraintNode that is added to a plan in order
+ to clean up null outputs from a pre-join filter. For example, when doing time spine joins to fill null values
+ for metric outputs sometimes that join will result in rows with null values for various dimension attributes.
+ By re-applying the filter expression after the join step we will discard those unexpected output rows created
+ by the join (rather than the underlying inputs). In this case, we must ensure that the filters defined in this
+ node are always applied at the moment this node is processed, regardless of whether or not they've been pushed
+ down through the DAG.
+ """
self._where_specs = where_specs
self.parent_node = parent_node
+ self.always_apply = always_apply
super().__init__(node_id=self.create_unique_id(), parent_nodes=(parent_node,))
@classmethod
@@ -52,14 +66,20 @@ def description(self) -> str: # noqa: D102
@property
def displayed_properties(self) -> Sequence[DisplayedProperty]: # noqa: D102
- return tuple(super().displayed_properties) + (DisplayedProperty("where_condition", self.where),)
+ properties = tuple(super().displayed_properties) + (DisplayedProperty("where_condition", self.where),)
+ if self.always_apply:
+ properties = properties + (DisplayedProperty("All filters always applied:", self.always_apply),)
+ return properties
def functionally_identical(self, other_node: DataflowPlanNode) -> bool: # noqa: D102
- return isinstance(other_node, self.__class__) and other_node.where == self.where
+ return (
+ isinstance(other_node, self.__class__)
+ and other_node.where == self.where
+ and other_node.always_apply == self.always_apply
+ )
def with_new_parents(self, new_parent_nodes: Sequence[DataflowPlanNode]) -> WhereConstraintNode: # noqa: D102
assert len(new_parent_nodes) == 1
return WhereConstraintNode(
- parent_node=new_parent_nodes[0],
- where_specs=self.input_where_specs,
+ parent_node=new_parent_nodes[0], where_specs=self.input_where_specs, always_apply=self.always_apply
)
diff --git a/metricflow/dataflow/optimizer/predicate_pushdown_optimizer.py b/metricflow/dataflow/optimizer/predicate_pushdown_optimizer.py
index aa1de45bcb..aed67dea7e 100644
--- a/metricflow/dataflow/optimizer/predicate_pushdown_optimizer.py
+++ b/metricflow/dataflow/optimizer/predicate_pushdown_optimizer.py
@@ -362,14 +362,10 @@ def visit_where_constraint_node(self, node: WhereConstraintNode) -> OptimizeBran
with self._predicate_pushdown_tracker.track_pushdown_state(updated_pushdown_state):
optimized_parent: OptimizeBranchResult = node.parent_node.accept(self)
- # TODO: Update to only apply filters that have not been successfully pushed down
- optimized_node = OptimizeBranchResult(
- optimized_branch=node.with_new_parents((optimized_parent.optimized_branch,))
- )
-
pushdown_state_updated_by_parent = self._predicate_pushdown_tracker.last_pushdown_state
- # Override the pushdown state for this node and allow all upstream propagation to be handled by the tracker
- if len(pushdown_state_updated_by_parent.applied_where_filter_specs) > 0:
+ applied_filter_specs = pushdown_state_updated_by_parent.applied_where_filter_specs
+ filter_specs_to_apply = [spec for spec in node.input_where_specs if spec not in applied_filter_specs]
+ if len(applied_filter_specs) > 0:
updated_specs = frozenset.union(
frozenset(node.input_where_specs),
pushdown_state_updated_by_parent.applied_where_filter_specs,
@@ -388,6 +384,26 @@ def visit_where_constraint_node(self, node: WhereConstraintNode) -> OptimizeBran
),
)
+ if node.always_apply:
+ logger.log(
+ level=self._log_level,
+ msg=(
+ "Applying original filter spec set based on node-level override directive. Additional specs "
+ + f"appled:\n{[spec for spec in node.input_where_specs if spec not in filter_specs_to_apply]}"
+ ),
+ )
+ optimized_node = OptimizeBranchResult(
+ optimized_branch=node.with_new_parents((optimized_parent.optimized_branch,))
+ )
+ elif len(filter_specs_to_apply) > 0:
+ optimized_node = OptimizeBranchResult(
+ optimized_branch=WhereConstraintNode(
+ parent_node=optimized_parent.optimized_branch, where_specs=filter_specs_to_apply
+ )
+ )
+ else:
+ optimized_node = optimized_parent
+
return optimized_node
# Join nodes - these may affect pushdown state based on join type
diff --git a/tests_metricflow/dataflow/optimizer/test_predicate_pushdown_optimizer.py b/tests_metricflow/dataflow/optimizer/test_predicate_pushdown_optimizer.py
index e32fedcfd6..750fbbdc99 100644
--- a/tests_metricflow/dataflow/optimizer/test_predicate_pushdown_optimizer.py
+++ b/tests_metricflow/dataflow/optimizer/test_predicate_pushdown_optimizer.py
@@ -194,7 +194,10 @@ def test_simple_join_categorical_pushdown(
query_parser: MetricFlowQueryParser,
dataflow_plan_builder: DataflowPlanBuilder,
) -> None:
- """Tests pushdown optimization for a simple predicate through a single join."""
+ """Tests pushdown optimization for a simple predicate through a single join.
+
+ In this case the entire constraint should be moved inside of the join.
+ """
query_spec = query_parser.parse_and_validate_query(
metric_names=("bookings",),
group_by_names=("listing__country_latest",),
@@ -205,7 +208,7 @@ def test_simple_join_categorical_pushdown(
mf_test_configuration=mf_test_configuration,
dataflow_plan_builder=dataflow_plan_builder,
query_spec=query_spec,
- expected_additional_constraint_nodes_in_optimized=1,
+ expected_additional_constraint_nodes_in_optimized=0,
)
@@ -256,7 +259,7 @@ def test_conversion_metric_predicate_pushdown(
mf_test_configuration=mf_test_configuration,
dataflow_plan_builder=dataflow_plan_builder,
query_spec=query_spec,
- expected_additional_constraint_nodes_in_optimized=1, # TODO: Remove superfluous where constraint nodes
+ expected_additional_constraint_nodes_in_optimized=0,
)
@@ -272,6 +275,8 @@ def test_cumulative_metric_predicate_pushdown(
since supporting time filter pushdown for cumulative metrics requires filter expansion to ensure we capture the
full set of inputs for the initial cumulative window.
+ For the query listed here the entire constraint will be moved past the dimension join.
+
TODO: Add metric time filters
"""
query_spec = query_parser.parse_and_validate_query(
@@ -284,7 +289,7 @@ def test_cumulative_metric_predicate_pushdown(
mf_test_configuration=mf_test_configuration,
dataflow_plan_builder=dataflow_plan_builder,
query_spec=query_spec,
- expected_additional_constraint_nodes_in_optimized=1,
+ expected_additional_constraint_nodes_in_optimized=0,
)
@@ -323,6 +328,8 @@ def test_offset_metric_predicate_pushdown(
As with cumulative metrics, at this time categorical dimension predicates may be pushed down, but metric_time
predicates should not be, since we need to capture the union of the filter window and the offset span.
+ For the query listed here the entire constraint will be moved past the dimension join.
+
TODO: Add metric time filters
"""
query_spec = query_parser.parse_and_validate_query(
@@ -335,7 +342,7 @@ def test_offset_metric_predicate_pushdown(
mf_test_configuration=mf_test_configuration,
dataflow_plan_builder=dataflow_plan_builder,
query_spec=query_spec,
- expected_additional_constraint_nodes_in_optimized=1,
+ expected_additional_constraint_nodes_in_optimized=0,
)
@@ -349,6 +356,8 @@ def test_fill_nulls_time_spine_metric_predicate_pushdown(
Until time dimension pushdown is supported we will only see the categorical dimension entry pushed down here.
+ For the query listed here the entire constraint will be moved past the dimension join.
+
TODO: Add metric time filters
"""
query_spec = query_parser.parse_and_validate_query(
@@ -361,7 +370,7 @@ def test_fill_nulls_time_spine_metric_predicate_pushdown(
mf_test_configuration=mf_test_configuration,
dataflow_plan_builder=dataflow_plan_builder,
query_spec=query_spec,
- expected_additional_constraint_nodes_in_optimized=1,
+ expected_additional_constraint_nodes_in_optimized=0,
)
@@ -377,7 +386,9 @@ def test_fill_nulls_time_spine_metric_with_post_agg_join_predicate_pushdown(
against the time spine, which should preclude predicate pushdown for query-time filters at that state, but
will allow for pushdown within the JoinToTimeSpine operation. This will still do predicate pushdown as before,
but only exactly as before - the added constraint outside of the JoinToTimeSpine operation must still be
- applied.
+ applied in its entirety, and so we expect 0 additional constraint nodes. If we failed to account for the
+ repeated constraint outside of the JoinToTimeSpine in our pushdown handling this would remove one of the
+ WhereConstraintNodes from the original query altogether.
Until time dimension pushdown is supported we will only see the categorical dimension entry pushed down here.
@@ -393,5 +404,5 @@ def test_fill_nulls_time_spine_metric_with_post_agg_join_predicate_pushdown(
mf_test_configuration=mf_test_configuration,
dataflow_plan_builder=dataflow_plan_builder,
query_spec=query_spec,
- expected_additional_constraint_nodes_in_optimized=1,
+ expected_additional_constraint_nodes_in_optimized=0,
)
diff --git a/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/BigQuery/test_conversion_metric_with_categorical_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/BigQuery/test_conversion_metric_with_categorical_filter__plan0_optimized.sql
index f5629789d6..9821e42a32 100644
--- a/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/BigQuery/test_conversion_metric_with_categorical_filter__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/BigQuery/test_conversion_metric_with_categorical_filter__plan0_optimized.sql
@@ -6,40 +6,32 @@ SELECT
FROM (
-- Combine Aggregated Outputs
SELECT
- COALESCE(subq_21.metric_time__day, subq_31.metric_time__day) AS metric_time__day
- , COALESCE(subq_21.visit__referrer_id, subq_31.visit__referrer_id) AS visit__referrer_id
- , MAX(subq_21.visits) AS visits
- , MAX(subq_31.buys) AS buys
+ COALESCE(subq_20.metric_time__day, subq_30.metric_time__day) AS metric_time__day
+ , COALESCE(subq_20.visit__referrer_id, subq_30.visit__referrer_id) AS visit__referrer_id
+ , MAX(subq_20.visits) AS visits
+ , MAX(subq_30.buys) AS buys
FROM (
-- Constrain Output with WHERE
+ -- Pass Only Elements: ['visits', 'visit__referrer_id', 'metric_time__day']
-- Aggregate Measures
SELECT
metric_time__day
, visit__referrer_id
, SUM(visits) AS visits
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['visits', 'visit__referrer_id', 'metric_time__day']
+ -- Read Elements From Semantic Model 'visits_source'
+ -- Metric Time Dimension 'ds'
SELECT
- metric_time__day
- , visit__referrer_id
- , visits
- FROM (
- -- Read Elements From Semantic Model 'visits_source'
- -- Metric Time Dimension 'ds'
- SELECT
- DATETIME_TRUNC(ds, day) AS metric_time__day
- , referrer_id AS visit__referrer_id
- , 1 AS visits
- FROM ***************************.fct_visits visits_source_src_28000
- ) subq_17
- WHERE visit__referrer_id = 'ref_id_01'
- ) subq_19
+ DATETIME_TRUNC(ds, day) AS metric_time__day
+ , referrer_id AS visit__referrer_id
+ , 1 AS visits
+ FROM ***************************.fct_visits visits_source_src_28000
+ ) subq_17
WHERE visit__referrer_id = 'ref_id_01'
GROUP BY
metric_time__day
, visit__referrer_id
- ) subq_21
+ ) subq_20
FULL OUTER JOIN (
-- Find conversions for user within the range of INF
-- Pass Only Elements: ['buys', 'visit__referrer_id', 'metric_time__day']
@@ -51,48 +43,48 @@ FROM (
FROM (
-- Dedupe the fanout with mf_internal_uuid in the conversion data set
SELECT DISTINCT
- FIRST_VALUE(subq_24.visits) OVER (
+ FIRST_VALUE(subq_23.visits) OVER (
PARTITION BY
- subq_27.user
- , subq_27.ds__day
- , subq_27.mf_internal_uuid
- ORDER BY subq_24.ds__day DESC
+ subq_26.user
+ , subq_26.ds__day
+ , subq_26.mf_internal_uuid
+ ORDER BY subq_23.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS visits
- , FIRST_VALUE(subq_24.visit__referrer_id) OVER (
+ , FIRST_VALUE(subq_23.visit__referrer_id) OVER (
PARTITION BY
- subq_27.user
- , subq_27.ds__day
- , subq_27.mf_internal_uuid
- ORDER BY subq_24.ds__day DESC
+ subq_26.user
+ , subq_26.ds__day
+ , subq_26.mf_internal_uuid
+ ORDER BY subq_23.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS visit__referrer_id
- , FIRST_VALUE(subq_24.ds__day) OVER (
+ , FIRST_VALUE(subq_23.ds__day) OVER (
PARTITION BY
- subq_27.user
- , subq_27.ds__day
- , subq_27.mf_internal_uuid
- ORDER BY subq_24.ds__day DESC
+ subq_26.user
+ , subq_26.ds__day
+ , subq_26.mf_internal_uuid
+ ORDER BY subq_23.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS ds__day
- , FIRST_VALUE(subq_24.metric_time__day) OVER (
+ , FIRST_VALUE(subq_23.metric_time__day) OVER (
PARTITION BY
- subq_27.user
- , subq_27.ds__day
- , subq_27.mf_internal_uuid
- ORDER BY subq_24.ds__day DESC
+ subq_26.user
+ , subq_26.ds__day
+ , subq_26.mf_internal_uuid
+ ORDER BY subq_23.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS metric_time__day
- , FIRST_VALUE(subq_24.user) OVER (
+ , FIRST_VALUE(subq_23.user) OVER (
PARTITION BY
- subq_27.user
- , subq_27.ds__day
- , subq_27.mf_internal_uuid
- ORDER BY subq_24.ds__day DESC
+ subq_26.user
+ , subq_26.ds__day
+ , subq_26.mf_internal_uuid
+ ORDER BY subq_23.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS user
- , subq_27.mf_internal_uuid AS mf_internal_uuid
- , subq_27.buys AS buys
+ , subq_26.mf_internal_uuid AS mf_internal_uuid
+ , subq_26.buys AS buys
FROM (
-- Read Elements From Semantic Model 'visits_source'
-- Metric Time Dimension 'ds'
@@ -104,7 +96,7 @@ FROM (
, referrer_id AS visit__referrer_id
, 1 AS visits
FROM ***************************.fct_visits visits_source_src_28000
- ) subq_24
+ ) subq_23
INNER JOIN (
-- Read Elements From Semantic Model 'buys_source'
-- Metric Time Dimension 'ds'
@@ -115,25 +107,25 @@ FROM (
, 1 AS buys
, GENERATE_UUID() AS mf_internal_uuid
FROM ***************************.fct_buys buys_source_src_28000
- ) subq_27
+ ) subq_26
ON
(
- subq_24.user = subq_27.user
+ subq_23.user = subq_26.user
) AND (
- (subq_24.ds__day <= subq_27.ds__day)
+ (subq_23.ds__day <= subq_26.ds__day)
)
- ) subq_28
+ ) subq_27
GROUP BY
metric_time__day
, visit__referrer_id
- ) subq_31
+ ) subq_30
ON
(
- subq_21.visit__referrer_id = subq_31.visit__referrer_id
+ subq_20.visit__referrer_id = subq_30.visit__referrer_id
) AND (
- subq_21.metric_time__day = subq_31.metric_time__day
+ subq_20.metric_time__day = subq_30.metric_time__day
)
GROUP BY
metric_time__day
, visit__referrer_id
-) subq_32
+) subq_31
diff --git a/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/BigQuery/test_conversion_metric_with_time_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/BigQuery/test_conversion_metric_with_time_constraint__plan0_optimized.sql
index 22f7b0b060..14cbb8312b 100644
--- a/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/BigQuery/test_conversion_metric_with_time_constraint__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/BigQuery/test_conversion_metric_with_time_constraint__plan0_optimized.sql
@@ -5,41 +5,34 @@ SELECT
FROM (
-- Combine Aggregated Outputs
SELECT
- COALESCE(subq_24.visit__referrer_id, subq_35.visit__referrer_id) AS visit__referrer_id
- , MAX(subq_24.visits) AS visits
- , MAX(subq_35.buys) AS buys
+ COALESCE(subq_23.visit__referrer_id, subq_34.visit__referrer_id) AS visit__referrer_id
+ , MAX(subq_23.visits) AS visits
+ , MAX(subq_34.buys) AS buys
FROM (
-- Constrain Output with WHERE
+ -- Constrain Time Range to [2020-01-01T00:00:00, 2020-01-02T00:00:00]
+ -- Pass Only Elements: ['visits', 'visit__referrer_id']
-- Aggregate Measures
SELECT
visit__referrer_id
, SUM(visits) AS visits
FROM (
- -- Constrain Output with WHERE
- -- Constrain Time Range to [2020-01-01T00:00:00, 2020-01-02T00:00:00]
- -- Pass Only Elements: ['visits', 'visit__referrer_id']
+ -- Read Elements From Semantic Model 'visits_source'
+ -- Metric Time Dimension 'ds'
SELECT
- visit__referrer_id
- , visits
- FROM (
- -- Read Elements From Semantic Model 'visits_source'
- -- Metric Time Dimension 'ds'
- SELECT
- DATETIME_TRUNC(ds, day) AS metric_time__day
- , referrer_id AS visit__referrer_id
- , 1 AS visits
- FROM ***************************.fct_visits visits_source_src_28000
- ) subq_19
- WHERE (
- metric_time__day BETWEEN '2020-01-01' AND '2020-01-02'
- ) AND (
- visit__referrer_id = 'ref_id_01'
- )
- ) subq_22
- WHERE visit__referrer_id = 'ref_id_01'
+ DATETIME_TRUNC(ds, day) AS metric_time__day
+ , referrer_id AS visit__referrer_id
+ , 1 AS visits
+ FROM ***************************.fct_visits visits_source_src_28000
+ ) subq_19
+ WHERE (
+ metric_time__day BETWEEN '2020-01-01' AND '2020-01-02'
+ ) AND (
+ visit__referrer_id = 'ref_id_01'
+ )
GROUP BY
visit__referrer_id
- ) subq_24
+ ) subq_23
FULL OUTER JOIN (
-- Find conversions for user within the range of INF
-- Pass Only Elements: ['buys', 'visit__referrer_id']
@@ -50,40 +43,40 @@ FROM (
FROM (
-- Dedupe the fanout with mf_internal_uuid in the conversion data set
SELECT DISTINCT
- FIRST_VALUE(subq_28.visits) OVER (
+ FIRST_VALUE(subq_27.visits) OVER (
PARTITION BY
- subq_31.user
- , subq_31.ds__day
- , subq_31.mf_internal_uuid
- ORDER BY subq_28.ds__day DESC
+ subq_30.user
+ , subq_30.ds__day
+ , subq_30.mf_internal_uuid
+ ORDER BY subq_27.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS visits
- , FIRST_VALUE(subq_28.visit__referrer_id) OVER (
+ , FIRST_VALUE(subq_27.visit__referrer_id) OVER (
PARTITION BY
- subq_31.user
- , subq_31.ds__day
- , subq_31.mf_internal_uuid
- ORDER BY subq_28.ds__day DESC
+ subq_30.user
+ , subq_30.ds__day
+ , subq_30.mf_internal_uuid
+ ORDER BY subq_27.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS visit__referrer_id
- , FIRST_VALUE(subq_28.ds__day) OVER (
+ , FIRST_VALUE(subq_27.ds__day) OVER (
PARTITION BY
- subq_31.user
- , subq_31.ds__day
- , subq_31.mf_internal_uuid
- ORDER BY subq_28.ds__day DESC
+ subq_30.user
+ , subq_30.ds__day
+ , subq_30.mf_internal_uuid
+ ORDER BY subq_27.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS ds__day
- , FIRST_VALUE(subq_28.user) OVER (
+ , FIRST_VALUE(subq_27.user) OVER (
PARTITION BY
- subq_31.user
- , subq_31.ds__day
- , subq_31.mf_internal_uuid
- ORDER BY subq_28.ds__day DESC
+ subq_30.user
+ , subq_30.ds__day
+ , subq_30.mf_internal_uuid
+ ORDER BY subq_27.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS user
- , subq_31.mf_internal_uuid AS mf_internal_uuid
- , subq_31.buys AS buys
+ , subq_30.mf_internal_uuid AS mf_internal_uuid
+ , subq_30.buys AS buys
FROM (
-- Read Elements From Semantic Model 'visits_source'
-- Metric Time Dimension 'ds'
@@ -96,7 +89,7 @@ FROM (
, 1 AS visits
FROM ***************************.fct_visits visits_source_src_28000
WHERE DATETIME_TRUNC(ds, day) BETWEEN '2020-01-01' AND '2020-01-02'
- ) subq_28
+ ) subq_27
INNER JOIN (
-- Read Elements From Semantic Model 'buys_source'
-- Metric Time Dimension 'ds'
@@ -107,19 +100,19 @@ FROM (
, 1 AS buys
, GENERATE_UUID() AS mf_internal_uuid
FROM ***************************.fct_buys buys_source_src_28000
- ) subq_31
+ ) subq_30
ON
(
- subq_28.user = subq_31.user
+ subq_27.user = subq_30.user
) AND (
- (subq_28.ds__day <= subq_31.ds__day)
+ (subq_27.ds__day <= subq_30.ds__day)
)
- ) subq_32
+ ) subq_31
GROUP BY
visit__referrer_id
- ) subq_35
+ ) subq_34
ON
- subq_24.visit__referrer_id = subq_35.visit__referrer_id
+ subq_23.visit__referrer_id = subq_34.visit__referrer_id
GROUP BY
visit__referrer_id
-) subq_36
+) subq_35
diff --git a/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/BigQuery/test_conversion_metric_with_window_and_time_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/BigQuery/test_conversion_metric_with_window_and_time_constraint__plan0_optimized.sql
index ca25591e1e..013fa89b0d 100644
--- a/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/BigQuery/test_conversion_metric_with_window_and_time_constraint__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/BigQuery/test_conversion_metric_with_window_and_time_constraint__plan0_optimized.sql
@@ -6,45 +6,37 @@ SELECT
FROM (
-- Combine Aggregated Outputs
SELECT
- COALESCE(subq_24.metric_time__day, subq_35.metric_time__day) AS metric_time__day
- , COALESCE(subq_24.visit__referrer_id, subq_35.visit__referrer_id) AS visit__referrer_id
- , MAX(subq_24.visits) AS visits
- , MAX(subq_35.buys) AS buys
+ COALESCE(subq_23.metric_time__day, subq_34.metric_time__day) AS metric_time__day
+ , COALESCE(subq_23.visit__referrer_id, subq_34.visit__referrer_id) AS visit__referrer_id
+ , MAX(subq_23.visits) AS visits
+ , MAX(subq_34.buys) AS buys
FROM (
-- Constrain Output with WHERE
+ -- Constrain Time Range to [2020-01-01T00:00:00, 2020-01-02T00:00:00]
+ -- Pass Only Elements: ['visits', 'visit__referrer_id', 'metric_time__day']
-- Aggregate Measures
SELECT
metric_time__day
, visit__referrer_id
, SUM(visits) AS visits
FROM (
- -- Constrain Output with WHERE
- -- Constrain Time Range to [2020-01-01T00:00:00, 2020-01-02T00:00:00]
- -- Pass Only Elements: ['visits', 'visit__referrer_id', 'metric_time__day']
+ -- Read Elements From Semantic Model 'visits_source'
+ -- Metric Time Dimension 'ds'
SELECT
- metric_time__day
- , visit__referrer_id
- , visits
- FROM (
- -- Read Elements From Semantic Model 'visits_source'
- -- Metric Time Dimension 'ds'
- SELECT
- DATETIME_TRUNC(ds, day) AS metric_time__day
- , referrer_id AS visit__referrer_id
- , 1 AS visits
- FROM ***************************.fct_visits visits_source_src_28000
- ) subq_19
- WHERE (
- metric_time__day BETWEEN '2020-01-01' AND '2020-01-02'
- ) AND (
- visit__referrer_id = 'ref_id_01'
- )
- ) subq_22
- WHERE visit__referrer_id = 'ref_id_01'
+ DATETIME_TRUNC(ds, day) AS metric_time__day
+ , referrer_id AS visit__referrer_id
+ , 1 AS visits
+ FROM ***************************.fct_visits visits_source_src_28000
+ ) subq_19
+ WHERE (
+ metric_time__day BETWEEN '2020-01-01' AND '2020-01-02'
+ ) AND (
+ visit__referrer_id = 'ref_id_01'
+ )
GROUP BY
metric_time__day
, visit__referrer_id
- ) subq_24
+ ) subq_23
FULL OUTER JOIN (
-- Find conversions for user within the range of 7 day
-- Pass Only Elements: ['buys', 'visit__referrer_id', 'metric_time__day']
@@ -56,48 +48,48 @@ FROM (
FROM (
-- Dedupe the fanout with mf_internal_uuid in the conversion data set
SELECT DISTINCT
- FIRST_VALUE(subq_28.visits) OVER (
+ FIRST_VALUE(subq_27.visits) OVER (
PARTITION BY
- subq_31.user
- , subq_31.ds__day
- , subq_31.mf_internal_uuid
- ORDER BY subq_28.ds__day DESC
+ subq_30.user
+ , subq_30.ds__day
+ , subq_30.mf_internal_uuid
+ ORDER BY subq_27.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS visits
- , FIRST_VALUE(subq_28.visit__referrer_id) OVER (
+ , FIRST_VALUE(subq_27.visit__referrer_id) OVER (
PARTITION BY
- subq_31.user
- , subq_31.ds__day
- , subq_31.mf_internal_uuid
- ORDER BY subq_28.ds__day DESC
+ subq_30.user
+ , subq_30.ds__day
+ , subq_30.mf_internal_uuid
+ ORDER BY subq_27.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS visit__referrer_id
- , FIRST_VALUE(subq_28.ds__day) OVER (
+ , FIRST_VALUE(subq_27.ds__day) OVER (
PARTITION BY
- subq_31.user
- , subq_31.ds__day
- , subq_31.mf_internal_uuid
- ORDER BY subq_28.ds__day DESC
+ subq_30.user
+ , subq_30.ds__day
+ , subq_30.mf_internal_uuid
+ ORDER BY subq_27.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS ds__day
- , FIRST_VALUE(subq_28.metric_time__day) OVER (
+ , FIRST_VALUE(subq_27.metric_time__day) OVER (
PARTITION BY
- subq_31.user
- , subq_31.ds__day
- , subq_31.mf_internal_uuid
- ORDER BY subq_28.ds__day DESC
+ subq_30.user
+ , subq_30.ds__day
+ , subq_30.mf_internal_uuid
+ ORDER BY subq_27.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS metric_time__day
- , FIRST_VALUE(subq_28.user) OVER (
+ , FIRST_VALUE(subq_27.user) OVER (
PARTITION BY
- subq_31.user
- , subq_31.ds__day
- , subq_31.mf_internal_uuid
- ORDER BY subq_28.ds__day DESC
+ subq_30.user
+ , subq_30.ds__day
+ , subq_30.mf_internal_uuid
+ ORDER BY subq_27.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS user
- , subq_31.mf_internal_uuid AS mf_internal_uuid
- , subq_31.buys AS buys
+ , subq_30.mf_internal_uuid AS mf_internal_uuid
+ , subq_30.buys AS buys
FROM (
-- Read Elements From Semantic Model 'visits_source'
-- Metric Time Dimension 'ds'
@@ -111,7 +103,7 @@ FROM (
, 1 AS visits
FROM ***************************.fct_visits visits_source_src_28000
WHERE DATETIME_TRUNC(ds, day) BETWEEN '2020-01-01' AND '2020-01-02'
- ) subq_28
+ ) subq_27
INNER JOIN (
-- Read Elements From Semantic Model 'buys_source'
-- Metric Time Dimension 'ds'
@@ -122,29 +114,29 @@ FROM (
, 1 AS buys
, GENERATE_UUID() AS mf_internal_uuid
FROM ***************************.fct_buys buys_source_src_28000
- ) subq_31
+ ) subq_30
ON
(
- subq_28.user = subq_31.user
+ subq_27.user = subq_30.user
) AND (
(
- subq_28.ds__day <= subq_31.ds__day
+ subq_27.ds__day <= subq_30.ds__day
) AND (
- subq_28.ds__day > DATE_SUB(CAST(subq_31.ds__day AS DATETIME), INTERVAL 7 day)
+ subq_27.ds__day > DATE_SUB(CAST(subq_30.ds__day AS DATETIME), INTERVAL 7 day)
)
)
- ) subq_32
+ ) subq_31
GROUP BY
metric_time__day
, visit__referrer_id
- ) subq_35
+ ) subq_34
ON
(
- subq_24.visit__referrer_id = subq_35.visit__referrer_id
+ subq_23.visit__referrer_id = subq_34.visit__referrer_id
) AND (
- subq_24.metric_time__day = subq_35.metric_time__day
+ subq_23.metric_time__day = subq_34.metric_time__day
)
GROUP BY
metric_time__day
, visit__referrer_id
-) subq_36
+) subq_35
diff --git a/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/Databricks/test_conversion_metric_with_categorical_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/Databricks/test_conversion_metric_with_categorical_filter__plan0_optimized.sql
index 67565371ea..580dd8baf1 100644
--- a/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/Databricks/test_conversion_metric_with_categorical_filter__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/Databricks/test_conversion_metric_with_categorical_filter__plan0_optimized.sql
@@ -6,40 +6,32 @@ SELECT
FROM (
-- Combine Aggregated Outputs
SELECT
- COALESCE(subq_21.metric_time__day, subq_31.metric_time__day) AS metric_time__day
- , COALESCE(subq_21.visit__referrer_id, subq_31.visit__referrer_id) AS visit__referrer_id
- , MAX(subq_21.visits) AS visits
- , MAX(subq_31.buys) AS buys
+ COALESCE(subq_20.metric_time__day, subq_30.metric_time__day) AS metric_time__day
+ , COALESCE(subq_20.visit__referrer_id, subq_30.visit__referrer_id) AS visit__referrer_id
+ , MAX(subq_20.visits) AS visits
+ , MAX(subq_30.buys) AS buys
FROM (
-- Constrain Output with WHERE
+ -- Pass Only Elements: ['visits', 'visit__referrer_id', 'metric_time__day']
-- Aggregate Measures
SELECT
metric_time__day
, visit__referrer_id
, SUM(visits) AS visits
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['visits', 'visit__referrer_id', 'metric_time__day']
+ -- Read Elements From Semantic Model 'visits_source'
+ -- Metric Time Dimension 'ds'
SELECT
- metric_time__day
- , visit__referrer_id
- , visits
- FROM (
- -- Read Elements From Semantic Model 'visits_source'
- -- Metric Time Dimension 'ds'
- SELECT
- DATE_TRUNC('day', ds) AS metric_time__day
- , referrer_id AS visit__referrer_id
- , 1 AS visits
- FROM ***************************.fct_visits visits_source_src_28000
- ) subq_17
- WHERE visit__referrer_id = 'ref_id_01'
- ) subq_19
+ DATE_TRUNC('day', ds) AS metric_time__day
+ , referrer_id AS visit__referrer_id
+ , 1 AS visits
+ FROM ***************************.fct_visits visits_source_src_28000
+ ) subq_17
WHERE visit__referrer_id = 'ref_id_01'
GROUP BY
metric_time__day
, visit__referrer_id
- ) subq_21
+ ) subq_20
FULL OUTER JOIN (
-- Find conversions for user within the range of INF
-- Pass Only Elements: ['buys', 'visit__referrer_id', 'metric_time__day']
@@ -51,48 +43,48 @@ FROM (
FROM (
-- Dedupe the fanout with mf_internal_uuid in the conversion data set
SELECT DISTINCT
- FIRST_VALUE(subq_24.visits) OVER (
+ FIRST_VALUE(subq_23.visits) OVER (
PARTITION BY
- subq_27.user
- , subq_27.ds__day
- , subq_27.mf_internal_uuid
- ORDER BY subq_24.ds__day DESC
+ subq_26.user
+ , subq_26.ds__day
+ , subq_26.mf_internal_uuid
+ ORDER BY subq_23.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS visits
- , FIRST_VALUE(subq_24.visit__referrer_id) OVER (
+ , FIRST_VALUE(subq_23.visit__referrer_id) OVER (
PARTITION BY
- subq_27.user
- , subq_27.ds__day
- , subq_27.mf_internal_uuid
- ORDER BY subq_24.ds__day DESC
+ subq_26.user
+ , subq_26.ds__day
+ , subq_26.mf_internal_uuid
+ ORDER BY subq_23.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS visit__referrer_id
- , FIRST_VALUE(subq_24.ds__day) OVER (
+ , FIRST_VALUE(subq_23.ds__day) OVER (
PARTITION BY
- subq_27.user
- , subq_27.ds__day
- , subq_27.mf_internal_uuid
- ORDER BY subq_24.ds__day DESC
+ subq_26.user
+ , subq_26.ds__day
+ , subq_26.mf_internal_uuid
+ ORDER BY subq_23.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS ds__day
- , FIRST_VALUE(subq_24.metric_time__day) OVER (
+ , FIRST_VALUE(subq_23.metric_time__day) OVER (
PARTITION BY
- subq_27.user
- , subq_27.ds__day
- , subq_27.mf_internal_uuid
- ORDER BY subq_24.ds__day DESC
+ subq_26.user
+ , subq_26.ds__day
+ , subq_26.mf_internal_uuid
+ ORDER BY subq_23.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS metric_time__day
- , FIRST_VALUE(subq_24.user) OVER (
+ , FIRST_VALUE(subq_23.user) OVER (
PARTITION BY
- subq_27.user
- , subq_27.ds__day
- , subq_27.mf_internal_uuid
- ORDER BY subq_24.ds__day DESC
+ subq_26.user
+ , subq_26.ds__day
+ , subq_26.mf_internal_uuid
+ ORDER BY subq_23.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS user
- , subq_27.mf_internal_uuid AS mf_internal_uuid
- , subq_27.buys AS buys
+ , subq_26.mf_internal_uuid AS mf_internal_uuid
+ , subq_26.buys AS buys
FROM (
-- Read Elements From Semantic Model 'visits_source'
-- Metric Time Dimension 'ds'
@@ -104,7 +96,7 @@ FROM (
, referrer_id AS visit__referrer_id
, 1 AS visits
FROM ***************************.fct_visits visits_source_src_28000
- ) subq_24
+ ) subq_23
INNER JOIN (
-- Read Elements From Semantic Model 'buys_source'
-- Metric Time Dimension 'ds'
@@ -115,25 +107,25 @@ FROM (
, 1 AS buys
, UUID() AS mf_internal_uuid
FROM ***************************.fct_buys buys_source_src_28000
- ) subq_27
+ ) subq_26
ON
(
- subq_24.user = subq_27.user
+ subq_23.user = subq_26.user
) AND (
- (subq_24.ds__day <= subq_27.ds__day)
+ (subq_23.ds__day <= subq_26.ds__day)
)
- ) subq_28
+ ) subq_27
GROUP BY
metric_time__day
, visit__referrer_id
- ) subq_31
+ ) subq_30
ON
(
- subq_21.visit__referrer_id = subq_31.visit__referrer_id
+ subq_20.visit__referrer_id = subq_30.visit__referrer_id
) AND (
- subq_21.metric_time__day = subq_31.metric_time__day
+ subq_20.metric_time__day = subq_30.metric_time__day
)
GROUP BY
- COALESCE(subq_21.metric_time__day, subq_31.metric_time__day)
- , COALESCE(subq_21.visit__referrer_id, subq_31.visit__referrer_id)
-) subq_32
+ COALESCE(subq_20.metric_time__day, subq_30.metric_time__day)
+ , COALESCE(subq_20.visit__referrer_id, subq_30.visit__referrer_id)
+) subq_31
diff --git a/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/Databricks/test_conversion_metric_with_time_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/Databricks/test_conversion_metric_with_time_constraint__plan0_optimized.sql
index 1420c1dd10..dd7883c842 100644
--- a/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/Databricks/test_conversion_metric_with_time_constraint__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/Databricks/test_conversion_metric_with_time_constraint__plan0_optimized.sql
@@ -5,41 +5,34 @@ SELECT
FROM (
-- Combine Aggregated Outputs
SELECT
- COALESCE(subq_24.visit__referrer_id, subq_35.visit__referrer_id) AS visit__referrer_id
- , MAX(subq_24.visits) AS visits
- , MAX(subq_35.buys) AS buys
+ COALESCE(subq_23.visit__referrer_id, subq_34.visit__referrer_id) AS visit__referrer_id
+ , MAX(subq_23.visits) AS visits
+ , MAX(subq_34.buys) AS buys
FROM (
-- Constrain Output with WHERE
+ -- Constrain Time Range to [2020-01-01T00:00:00, 2020-01-02T00:00:00]
+ -- Pass Only Elements: ['visits', 'visit__referrer_id']
-- Aggregate Measures
SELECT
visit__referrer_id
, SUM(visits) AS visits
FROM (
- -- Constrain Output with WHERE
- -- Constrain Time Range to [2020-01-01T00:00:00, 2020-01-02T00:00:00]
- -- Pass Only Elements: ['visits', 'visit__referrer_id']
+ -- Read Elements From Semantic Model 'visits_source'
+ -- Metric Time Dimension 'ds'
SELECT
- visit__referrer_id
- , visits
- FROM (
- -- Read Elements From Semantic Model 'visits_source'
- -- Metric Time Dimension 'ds'
- SELECT
- DATE_TRUNC('day', ds) AS metric_time__day
- , referrer_id AS visit__referrer_id
- , 1 AS visits
- FROM ***************************.fct_visits visits_source_src_28000
- ) subq_19
- WHERE (
- metric_time__day BETWEEN '2020-01-01' AND '2020-01-02'
- ) AND (
- visit__referrer_id = 'ref_id_01'
- )
- ) subq_22
- WHERE visit__referrer_id = 'ref_id_01'
+ DATE_TRUNC('day', ds) AS metric_time__day
+ , referrer_id AS visit__referrer_id
+ , 1 AS visits
+ FROM ***************************.fct_visits visits_source_src_28000
+ ) subq_19
+ WHERE (
+ metric_time__day BETWEEN '2020-01-01' AND '2020-01-02'
+ ) AND (
+ visit__referrer_id = 'ref_id_01'
+ )
GROUP BY
visit__referrer_id
- ) subq_24
+ ) subq_23
FULL OUTER JOIN (
-- Find conversions for user within the range of INF
-- Pass Only Elements: ['buys', 'visit__referrer_id']
@@ -50,40 +43,40 @@ FROM (
FROM (
-- Dedupe the fanout with mf_internal_uuid in the conversion data set
SELECT DISTINCT
- FIRST_VALUE(subq_28.visits) OVER (
+ FIRST_VALUE(subq_27.visits) OVER (
PARTITION BY
- subq_31.user
- , subq_31.ds__day
- , subq_31.mf_internal_uuid
- ORDER BY subq_28.ds__day DESC
+ subq_30.user
+ , subq_30.ds__day
+ , subq_30.mf_internal_uuid
+ ORDER BY subq_27.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS visits
- , FIRST_VALUE(subq_28.visit__referrer_id) OVER (
+ , FIRST_VALUE(subq_27.visit__referrer_id) OVER (
PARTITION BY
- subq_31.user
- , subq_31.ds__day
- , subq_31.mf_internal_uuid
- ORDER BY subq_28.ds__day DESC
+ subq_30.user
+ , subq_30.ds__day
+ , subq_30.mf_internal_uuid
+ ORDER BY subq_27.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS visit__referrer_id
- , FIRST_VALUE(subq_28.ds__day) OVER (
+ , FIRST_VALUE(subq_27.ds__day) OVER (
PARTITION BY
- subq_31.user
- , subq_31.ds__day
- , subq_31.mf_internal_uuid
- ORDER BY subq_28.ds__day DESC
+ subq_30.user
+ , subq_30.ds__day
+ , subq_30.mf_internal_uuid
+ ORDER BY subq_27.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS ds__day
- , FIRST_VALUE(subq_28.user) OVER (
+ , FIRST_VALUE(subq_27.user) OVER (
PARTITION BY
- subq_31.user
- , subq_31.ds__day
- , subq_31.mf_internal_uuid
- ORDER BY subq_28.ds__day DESC
+ subq_30.user
+ , subq_30.ds__day
+ , subq_30.mf_internal_uuid
+ ORDER BY subq_27.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS user
- , subq_31.mf_internal_uuid AS mf_internal_uuid
- , subq_31.buys AS buys
+ , subq_30.mf_internal_uuid AS mf_internal_uuid
+ , subq_30.buys AS buys
FROM (
-- Read Elements From Semantic Model 'visits_source'
-- Metric Time Dimension 'ds'
@@ -96,7 +89,7 @@ FROM (
, 1 AS visits
FROM ***************************.fct_visits visits_source_src_28000
WHERE DATE_TRUNC('day', ds) BETWEEN '2020-01-01' AND '2020-01-02'
- ) subq_28
+ ) subq_27
INNER JOIN (
-- Read Elements From Semantic Model 'buys_source'
-- Metric Time Dimension 'ds'
@@ -107,19 +100,19 @@ FROM (
, 1 AS buys
, UUID() AS mf_internal_uuid
FROM ***************************.fct_buys buys_source_src_28000
- ) subq_31
+ ) subq_30
ON
(
- subq_28.user = subq_31.user
+ subq_27.user = subq_30.user
) AND (
- (subq_28.ds__day <= subq_31.ds__day)
+ (subq_27.ds__day <= subq_30.ds__day)
)
- ) subq_32
+ ) subq_31
GROUP BY
visit__referrer_id
- ) subq_35
+ ) subq_34
ON
- subq_24.visit__referrer_id = subq_35.visit__referrer_id
+ subq_23.visit__referrer_id = subq_34.visit__referrer_id
GROUP BY
- COALESCE(subq_24.visit__referrer_id, subq_35.visit__referrer_id)
-) subq_36
+ COALESCE(subq_23.visit__referrer_id, subq_34.visit__referrer_id)
+) subq_35
diff --git a/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/Databricks/test_conversion_metric_with_window_and_time_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/Databricks/test_conversion_metric_with_window_and_time_constraint__plan0_optimized.sql
index ef33783859..1a40450467 100644
--- a/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/Databricks/test_conversion_metric_with_window_and_time_constraint__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/Databricks/test_conversion_metric_with_window_and_time_constraint__plan0_optimized.sql
@@ -6,45 +6,37 @@ SELECT
FROM (
-- Combine Aggregated Outputs
SELECT
- COALESCE(subq_24.metric_time__day, subq_35.metric_time__day) AS metric_time__day
- , COALESCE(subq_24.visit__referrer_id, subq_35.visit__referrer_id) AS visit__referrer_id
- , MAX(subq_24.visits) AS visits
- , MAX(subq_35.buys) AS buys
+ COALESCE(subq_23.metric_time__day, subq_34.metric_time__day) AS metric_time__day
+ , COALESCE(subq_23.visit__referrer_id, subq_34.visit__referrer_id) AS visit__referrer_id
+ , MAX(subq_23.visits) AS visits
+ , MAX(subq_34.buys) AS buys
FROM (
-- Constrain Output with WHERE
+ -- Constrain Time Range to [2020-01-01T00:00:00, 2020-01-02T00:00:00]
+ -- Pass Only Elements: ['visits', 'visit__referrer_id', 'metric_time__day']
-- Aggregate Measures
SELECT
metric_time__day
, visit__referrer_id
, SUM(visits) AS visits
FROM (
- -- Constrain Output with WHERE
- -- Constrain Time Range to [2020-01-01T00:00:00, 2020-01-02T00:00:00]
- -- Pass Only Elements: ['visits', 'visit__referrer_id', 'metric_time__day']
+ -- Read Elements From Semantic Model 'visits_source'
+ -- Metric Time Dimension 'ds'
SELECT
- metric_time__day
- , visit__referrer_id
- , visits
- FROM (
- -- Read Elements From Semantic Model 'visits_source'
- -- Metric Time Dimension 'ds'
- SELECT
- DATE_TRUNC('day', ds) AS metric_time__day
- , referrer_id AS visit__referrer_id
- , 1 AS visits
- FROM ***************************.fct_visits visits_source_src_28000
- ) subq_19
- WHERE (
- metric_time__day BETWEEN '2020-01-01' AND '2020-01-02'
- ) AND (
- visit__referrer_id = 'ref_id_01'
- )
- ) subq_22
- WHERE visit__referrer_id = 'ref_id_01'
+ DATE_TRUNC('day', ds) AS metric_time__day
+ , referrer_id AS visit__referrer_id
+ , 1 AS visits
+ FROM ***************************.fct_visits visits_source_src_28000
+ ) subq_19
+ WHERE (
+ metric_time__day BETWEEN '2020-01-01' AND '2020-01-02'
+ ) AND (
+ visit__referrer_id = 'ref_id_01'
+ )
GROUP BY
metric_time__day
, visit__referrer_id
- ) subq_24
+ ) subq_23
FULL OUTER JOIN (
-- Find conversions for user within the range of 7 day
-- Pass Only Elements: ['buys', 'visit__referrer_id', 'metric_time__day']
@@ -56,48 +48,48 @@ FROM (
FROM (
-- Dedupe the fanout with mf_internal_uuid in the conversion data set
SELECT DISTINCT
- FIRST_VALUE(subq_28.visits) OVER (
+ FIRST_VALUE(subq_27.visits) OVER (
PARTITION BY
- subq_31.user
- , subq_31.ds__day
- , subq_31.mf_internal_uuid
- ORDER BY subq_28.ds__day DESC
+ subq_30.user
+ , subq_30.ds__day
+ , subq_30.mf_internal_uuid
+ ORDER BY subq_27.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS visits
- , FIRST_VALUE(subq_28.visit__referrer_id) OVER (
+ , FIRST_VALUE(subq_27.visit__referrer_id) OVER (
PARTITION BY
- subq_31.user
- , subq_31.ds__day
- , subq_31.mf_internal_uuid
- ORDER BY subq_28.ds__day DESC
+ subq_30.user
+ , subq_30.ds__day
+ , subq_30.mf_internal_uuid
+ ORDER BY subq_27.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS visit__referrer_id
- , FIRST_VALUE(subq_28.ds__day) OVER (
+ , FIRST_VALUE(subq_27.ds__day) OVER (
PARTITION BY
- subq_31.user
- , subq_31.ds__day
- , subq_31.mf_internal_uuid
- ORDER BY subq_28.ds__day DESC
+ subq_30.user
+ , subq_30.ds__day
+ , subq_30.mf_internal_uuid
+ ORDER BY subq_27.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS ds__day
- , FIRST_VALUE(subq_28.metric_time__day) OVER (
+ , FIRST_VALUE(subq_27.metric_time__day) OVER (
PARTITION BY
- subq_31.user
- , subq_31.ds__day
- , subq_31.mf_internal_uuid
- ORDER BY subq_28.ds__day DESC
+ subq_30.user
+ , subq_30.ds__day
+ , subq_30.mf_internal_uuid
+ ORDER BY subq_27.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS metric_time__day
- , FIRST_VALUE(subq_28.user) OVER (
+ , FIRST_VALUE(subq_27.user) OVER (
PARTITION BY
- subq_31.user
- , subq_31.ds__day
- , subq_31.mf_internal_uuid
- ORDER BY subq_28.ds__day DESC
+ subq_30.user
+ , subq_30.ds__day
+ , subq_30.mf_internal_uuid
+ ORDER BY subq_27.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS user
- , subq_31.mf_internal_uuid AS mf_internal_uuid
- , subq_31.buys AS buys
+ , subq_30.mf_internal_uuid AS mf_internal_uuid
+ , subq_30.buys AS buys
FROM (
-- Read Elements From Semantic Model 'visits_source'
-- Metric Time Dimension 'ds'
@@ -111,7 +103,7 @@ FROM (
, 1 AS visits
FROM ***************************.fct_visits visits_source_src_28000
WHERE DATE_TRUNC('day', ds) BETWEEN '2020-01-01' AND '2020-01-02'
- ) subq_28
+ ) subq_27
INNER JOIN (
-- Read Elements From Semantic Model 'buys_source'
-- Metric Time Dimension 'ds'
@@ -122,29 +114,29 @@ FROM (
, 1 AS buys
, UUID() AS mf_internal_uuid
FROM ***************************.fct_buys buys_source_src_28000
- ) subq_31
+ ) subq_30
ON
(
- subq_28.user = subq_31.user
+ subq_27.user = subq_30.user
) AND (
(
- subq_28.ds__day <= subq_31.ds__day
+ subq_27.ds__day <= subq_30.ds__day
) AND (
- subq_28.ds__day > DATEADD(day, -7, subq_31.ds__day)
+ subq_27.ds__day > DATEADD(day, -7, subq_30.ds__day)
)
)
- ) subq_32
+ ) subq_31
GROUP BY
metric_time__day
, visit__referrer_id
- ) subq_35
+ ) subq_34
ON
(
- subq_24.visit__referrer_id = subq_35.visit__referrer_id
+ subq_23.visit__referrer_id = subq_34.visit__referrer_id
) AND (
- subq_24.metric_time__day = subq_35.metric_time__day
+ subq_23.metric_time__day = subq_34.metric_time__day
)
GROUP BY
- COALESCE(subq_24.metric_time__day, subq_35.metric_time__day)
- , COALESCE(subq_24.visit__referrer_id, subq_35.visit__referrer_id)
-) subq_36
+ COALESCE(subq_23.metric_time__day, subq_34.metric_time__day)
+ , COALESCE(subq_23.visit__referrer_id, subq_34.visit__referrer_id)
+) subq_35
diff --git a/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/DuckDB/test_conversion_metric_with_categorical_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/DuckDB/test_conversion_metric_with_categorical_filter__plan0_optimized.sql
index 45a7a63209..0db2a5d863 100644
--- a/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/DuckDB/test_conversion_metric_with_categorical_filter__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/DuckDB/test_conversion_metric_with_categorical_filter__plan0_optimized.sql
@@ -6,40 +6,32 @@ SELECT
FROM (
-- Combine Aggregated Outputs
SELECT
- COALESCE(subq_21.metric_time__day, subq_31.metric_time__day) AS metric_time__day
- , COALESCE(subq_21.visit__referrer_id, subq_31.visit__referrer_id) AS visit__referrer_id
- , MAX(subq_21.visits) AS visits
- , MAX(subq_31.buys) AS buys
+ COALESCE(subq_20.metric_time__day, subq_30.metric_time__day) AS metric_time__day
+ , COALESCE(subq_20.visit__referrer_id, subq_30.visit__referrer_id) AS visit__referrer_id
+ , MAX(subq_20.visits) AS visits
+ , MAX(subq_30.buys) AS buys
FROM (
-- Constrain Output with WHERE
+ -- Pass Only Elements: ['visits', 'visit__referrer_id', 'metric_time__day']
-- Aggregate Measures
SELECT
metric_time__day
, visit__referrer_id
, SUM(visits) AS visits
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['visits', 'visit__referrer_id', 'metric_time__day']
+ -- Read Elements From Semantic Model 'visits_source'
+ -- Metric Time Dimension 'ds'
SELECT
- metric_time__day
- , visit__referrer_id
- , visits
- FROM (
- -- Read Elements From Semantic Model 'visits_source'
- -- Metric Time Dimension 'ds'
- SELECT
- DATE_TRUNC('day', ds) AS metric_time__day
- , referrer_id AS visit__referrer_id
- , 1 AS visits
- FROM ***************************.fct_visits visits_source_src_28000
- ) subq_17
- WHERE visit__referrer_id = 'ref_id_01'
- ) subq_19
+ DATE_TRUNC('day', ds) AS metric_time__day
+ , referrer_id AS visit__referrer_id
+ , 1 AS visits
+ FROM ***************************.fct_visits visits_source_src_28000
+ ) subq_17
WHERE visit__referrer_id = 'ref_id_01'
GROUP BY
metric_time__day
, visit__referrer_id
- ) subq_21
+ ) subq_20
FULL OUTER JOIN (
-- Find conversions for user within the range of INF
-- Pass Only Elements: ['buys', 'visit__referrer_id', 'metric_time__day']
@@ -51,48 +43,48 @@ FROM (
FROM (
-- Dedupe the fanout with mf_internal_uuid in the conversion data set
SELECT DISTINCT
- FIRST_VALUE(subq_24.visits) OVER (
+ FIRST_VALUE(subq_23.visits) OVER (
PARTITION BY
- subq_27.user
- , subq_27.ds__day
- , subq_27.mf_internal_uuid
- ORDER BY subq_24.ds__day DESC
+ subq_26.user
+ , subq_26.ds__day
+ , subq_26.mf_internal_uuid
+ ORDER BY subq_23.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS visits
- , FIRST_VALUE(subq_24.visit__referrer_id) OVER (
+ , FIRST_VALUE(subq_23.visit__referrer_id) OVER (
PARTITION BY
- subq_27.user
- , subq_27.ds__day
- , subq_27.mf_internal_uuid
- ORDER BY subq_24.ds__day DESC
+ subq_26.user
+ , subq_26.ds__day
+ , subq_26.mf_internal_uuid
+ ORDER BY subq_23.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS visit__referrer_id
- , FIRST_VALUE(subq_24.ds__day) OVER (
+ , FIRST_VALUE(subq_23.ds__day) OVER (
PARTITION BY
- subq_27.user
- , subq_27.ds__day
- , subq_27.mf_internal_uuid
- ORDER BY subq_24.ds__day DESC
+ subq_26.user
+ , subq_26.ds__day
+ , subq_26.mf_internal_uuid
+ ORDER BY subq_23.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS ds__day
- , FIRST_VALUE(subq_24.metric_time__day) OVER (
+ , FIRST_VALUE(subq_23.metric_time__day) OVER (
PARTITION BY
- subq_27.user
- , subq_27.ds__day
- , subq_27.mf_internal_uuid
- ORDER BY subq_24.ds__day DESC
+ subq_26.user
+ , subq_26.ds__day
+ , subq_26.mf_internal_uuid
+ ORDER BY subq_23.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS metric_time__day
- , FIRST_VALUE(subq_24.user) OVER (
+ , FIRST_VALUE(subq_23.user) OVER (
PARTITION BY
- subq_27.user
- , subq_27.ds__day
- , subq_27.mf_internal_uuid
- ORDER BY subq_24.ds__day DESC
+ subq_26.user
+ , subq_26.ds__day
+ , subq_26.mf_internal_uuid
+ ORDER BY subq_23.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS user
- , subq_27.mf_internal_uuid AS mf_internal_uuid
- , subq_27.buys AS buys
+ , subq_26.mf_internal_uuid AS mf_internal_uuid
+ , subq_26.buys AS buys
FROM (
-- Read Elements From Semantic Model 'visits_source'
-- Metric Time Dimension 'ds'
@@ -104,7 +96,7 @@ FROM (
, referrer_id AS visit__referrer_id
, 1 AS visits
FROM ***************************.fct_visits visits_source_src_28000
- ) subq_24
+ ) subq_23
INNER JOIN (
-- Read Elements From Semantic Model 'buys_source'
-- Metric Time Dimension 'ds'
@@ -115,25 +107,25 @@ FROM (
, 1 AS buys
, GEN_RANDOM_UUID() AS mf_internal_uuid
FROM ***************************.fct_buys buys_source_src_28000
- ) subq_27
+ ) subq_26
ON
(
- subq_24.user = subq_27.user
+ subq_23.user = subq_26.user
) AND (
- (subq_24.ds__day <= subq_27.ds__day)
+ (subq_23.ds__day <= subq_26.ds__day)
)
- ) subq_28
+ ) subq_27
GROUP BY
metric_time__day
, visit__referrer_id
- ) subq_31
+ ) subq_30
ON
(
- subq_21.visit__referrer_id = subq_31.visit__referrer_id
+ subq_20.visit__referrer_id = subq_30.visit__referrer_id
) AND (
- subq_21.metric_time__day = subq_31.metric_time__day
+ subq_20.metric_time__day = subq_30.metric_time__day
)
GROUP BY
- COALESCE(subq_21.metric_time__day, subq_31.metric_time__day)
- , COALESCE(subq_21.visit__referrer_id, subq_31.visit__referrer_id)
-) subq_32
+ COALESCE(subq_20.metric_time__day, subq_30.metric_time__day)
+ , COALESCE(subq_20.visit__referrer_id, subq_30.visit__referrer_id)
+) subq_31
diff --git a/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/DuckDB/test_conversion_metric_with_time_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/DuckDB/test_conversion_metric_with_time_constraint__plan0_optimized.sql
index ffad0bbd65..9e6683d2ca 100644
--- a/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/DuckDB/test_conversion_metric_with_time_constraint__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/DuckDB/test_conversion_metric_with_time_constraint__plan0_optimized.sql
@@ -5,41 +5,34 @@ SELECT
FROM (
-- Combine Aggregated Outputs
SELECT
- COALESCE(subq_24.visit__referrer_id, subq_35.visit__referrer_id) AS visit__referrer_id
- , MAX(subq_24.visits) AS visits
- , MAX(subq_35.buys) AS buys
+ COALESCE(subq_23.visit__referrer_id, subq_34.visit__referrer_id) AS visit__referrer_id
+ , MAX(subq_23.visits) AS visits
+ , MAX(subq_34.buys) AS buys
FROM (
-- Constrain Output with WHERE
+ -- Constrain Time Range to [2020-01-01T00:00:00, 2020-01-02T00:00:00]
+ -- Pass Only Elements: ['visits', 'visit__referrer_id']
-- Aggregate Measures
SELECT
visit__referrer_id
, SUM(visits) AS visits
FROM (
- -- Constrain Output with WHERE
- -- Constrain Time Range to [2020-01-01T00:00:00, 2020-01-02T00:00:00]
- -- Pass Only Elements: ['visits', 'visit__referrer_id']
+ -- Read Elements From Semantic Model 'visits_source'
+ -- Metric Time Dimension 'ds'
SELECT
- visit__referrer_id
- , visits
- FROM (
- -- Read Elements From Semantic Model 'visits_source'
- -- Metric Time Dimension 'ds'
- SELECT
- DATE_TRUNC('day', ds) AS metric_time__day
- , referrer_id AS visit__referrer_id
- , 1 AS visits
- FROM ***************************.fct_visits visits_source_src_28000
- ) subq_19
- WHERE (
- metric_time__day BETWEEN '2020-01-01' AND '2020-01-02'
- ) AND (
- visit__referrer_id = 'ref_id_01'
- )
- ) subq_22
- WHERE visit__referrer_id = 'ref_id_01'
+ DATE_TRUNC('day', ds) AS metric_time__day
+ , referrer_id AS visit__referrer_id
+ , 1 AS visits
+ FROM ***************************.fct_visits visits_source_src_28000
+ ) subq_19
+ WHERE (
+ metric_time__day BETWEEN '2020-01-01' AND '2020-01-02'
+ ) AND (
+ visit__referrer_id = 'ref_id_01'
+ )
GROUP BY
visit__referrer_id
- ) subq_24
+ ) subq_23
FULL OUTER JOIN (
-- Find conversions for user within the range of INF
-- Pass Only Elements: ['buys', 'visit__referrer_id']
@@ -50,40 +43,40 @@ FROM (
FROM (
-- Dedupe the fanout with mf_internal_uuid in the conversion data set
SELECT DISTINCT
- FIRST_VALUE(subq_28.visits) OVER (
+ FIRST_VALUE(subq_27.visits) OVER (
PARTITION BY
- subq_31.user
- , subq_31.ds__day
- , subq_31.mf_internal_uuid
- ORDER BY subq_28.ds__day DESC
+ subq_30.user
+ , subq_30.ds__day
+ , subq_30.mf_internal_uuid
+ ORDER BY subq_27.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS visits
- , FIRST_VALUE(subq_28.visit__referrer_id) OVER (
+ , FIRST_VALUE(subq_27.visit__referrer_id) OVER (
PARTITION BY
- subq_31.user
- , subq_31.ds__day
- , subq_31.mf_internal_uuid
- ORDER BY subq_28.ds__day DESC
+ subq_30.user
+ , subq_30.ds__day
+ , subq_30.mf_internal_uuid
+ ORDER BY subq_27.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS visit__referrer_id
- , FIRST_VALUE(subq_28.ds__day) OVER (
+ , FIRST_VALUE(subq_27.ds__day) OVER (
PARTITION BY
- subq_31.user
- , subq_31.ds__day
- , subq_31.mf_internal_uuid
- ORDER BY subq_28.ds__day DESC
+ subq_30.user
+ , subq_30.ds__day
+ , subq_30.mf_internal_uuid
+ ORDER BY subq_27.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS ds__day
- , FIRST_VALUE(subq_28.user) OVER (
+ , FIRST_VALUE(subq_27.user) OVER (
PARTITION BY
- subq_31.user
- , subq_31.ds__day
- , subq_31.mf_internal_uuid
- ORDER BY subq_28.ds__day DESC
+ subq_30.user
+ , subq_30.ds__day
+ , subq_30.mf_internal_uuid
+ ORDER BY subq_27.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS user
- , subq_31.mf_internal_uuid AS mf_internal_uuid
- , subq_31.buys AS buys
+ , subq_30.mf_internal_uuid AS mf_internal_uuid
+ , subq_30.buys AS buys
FROM (
-- Read Elements From Semantic Model 'visits_source'
-- Metric Time Dimension 'ds'
@@ -96,7 +89,7 @@ FROM (
, 1 AS visits
FROM ***************************.fct_visits visits_source_src_28000
WHERE DATE_TRUNC('day', ds) BETWEEN '2020-01-01' AND '2020-01-02'
- ) subq_28
+ ) subq_27
INNER JOIN (
-- Read Elements From Semantic Model 'buys_source'
-- Metric Time Dimension 'ds'
@@ -107,19 +100,19 @@ FROM (
, 1 AS buys
, GEN_RANDOM_UUID() AS mf_internal_uuid
FROM ***************************.fct_buys buys_source_src_28000
- ) subq_31
+ ) subq_30
ON
(
- subq_28.user = subq_31.user
+ subq_27.user = subq_30.user
) AND (
- (subq_28.ds__day <= subq_31.ds__day)
+ (subq_27.ds__day <= subq_30.ds__day)
)
- ) subq_32
+ ) subq_31
GROUP BY
visit__referrer_id
- ) subq_35
+ ) subq_34
ON
- subq_24.visit__referrer_id = subq_35.visit__referrer_id
+ subq_23.visit__referrer_id = subq_34.visit__referrer_id
GROUP BY
- COALESCE(subq_24.visit__referrer_id, subq_35.visit__referrer_id)
-) subq_36
+ COALESCE(subq_23.visit__referrer_id, subq_34.visit__referrer_id)
+) subq_35
diff --git a/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/DuckDB/test_conversion_metric_with_window_and_time_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/DuckDB/test_conversion_metric_with_window_and_time_constraint__plan0_optimized.sql
index c974ec9a55..794b4fbae3 100644
--- a/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/DuckDB/test_conversion_metric_with_window_and_time_constraint__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/DuckDB/test_conversion_metric_with_window_and_time_constraint__plan0_optimized.sql
@@ -6,45 +6,37 @@ SELECT
FROM (
-- Combine Aggregated Outputs
SELECT
- COALESCE(subq_24.metric_time__day, subq_35.metric_time__day) AS metric_time__day
- , COALESCE(subq_24.visit__referrer_id, subq_35.visit__referrer_id) AS visit__referrer_id
- , MAX(subq_24.visits) AS visits
- , MAX(subq_35.buys) AS buys
+ COALESCE(subq_23.metric_time__day, subq_34.metric_time__day) AS metric_time__day
+ , COALESCE(subq_23.visit__referrer_id, subq_34.visit__referrer_id) AS visit__referrer_id
+ , MAX(subq_23.visits) AS visits
+ , MAX(subq_34.buys) AS buys
FROM (
-- Constrain Output with WHERE
+ -- Constrain Time Range to [2020-01-01T00:00:00, 2020-01-02T00:00:00]
+ -- Pass Only Elements: ['visits', 'visit__referrer_id', 'metric_time__day']
-- Aggregate Measures
SELECT
metric_time__day
, visit__referrer_id
, SUM(visits) AS visits
FROM (
- -- Constrain Output with WHERE
- -- Constrain Time Range to [2020-01-01T00:00:00, 2020-01-02T00:00:00]
- -- Pass Only Elements: ['visits', 'visit__referrer_id', 'metric_time__day']
+ -- Read Elements From Semantic Model 'visits_source'
+ -- Metric Time Dimension 'ds'
SELECT
- metric_time__day
- , visit__referrer_id
- , visits
- FROM (
- -- Read Elements From Semantic Model 'visits_source'
- -- Metric Time Dimension 'ds'
- SELECT
- DATE_TRUNC('day', ds) AS metric_time__day
- , referrer_id AS visit__referrer_id
- , 1 AS visits
- FROM ***************************.fct_visits visits_source_src_28000
- ) subq_19
- WHERE (
- metric_time__day BETWEEN '2020-01-01' AND '2020-01-02'
- ) AND (
- visit__referrer_id = 'ref_id_01'
- )
- ) subq_22
- WHERE visit__referrer_id = 'ref_id_01'
+ DATE_TRUNC('day', ds) AS metric_time__day
+ , referrer_id AS visit__referrer_id
+ , 1 AS visits
+ FROM ***************************.fct_visits visits_source_src_28000
+ ) subq_19
+ WHERE (
+ metric_time__day BETWEEN '2020-01-01' AND '2020-01-02'
+ ) AND (
+ visit__referrer_id = 'ref_id_01'
+ )
GROUP BY
metric_time__day
, visit__referrer_id
- ) subq_24
+ ) subq_23
FULL OUTER JOIN (
-- Find conversions for user within the range of 7 day
-- Pass Only Elements: ['buys', 'visit__referrer_id', 'metric_time__day']
@@ -56,48 +48,48 @@ FROM (
FROM (
-- Dedupe the fanout with mf_internal_uuid in the conversion data set
SELECT DISTINCT
- FIRST_VALUE(subq_28.visits) OVER (
+ FIRST_VALUE(subq_27.visits) OVER (
PARTITION BY
- subq_31.user
- , subq_31.ds__day
- , subq_31.mf_internal_uuid
- ORDER BY subq_28.ds__day DESC
+ subq_30.user
+ , subq_30.ds__day
+ , subq_30.mf_internal_uuid
+ ORDER BY subq_27.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS visits
- , FIRST_VALUE(subq_28.visit__referrer_id) OVER (
+ , FIRST_VALUE(subq_27.visit__referrer_id) OVER (
PARTITION BY
- subq_31.user
- , subq_31.ds__day
- , subq_31.mf_internal_uuid
- ORDER BY subq_28.ds__day DESC
+ subq_30.user
+ , subq_30.ds__day
+ , subq_30.mf_internal_uuid
+ ORDER BY subq_27.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS visit__referrer_id
- , FIRST_VALUE(subq_28.ds__day) OVER (
+ , FIRST_VALUE(subq_27.ds__day) OVER (
PARTITION BY
- subq_31.user
- , subq_31.ds__day
- , subq_31.mf_internal_uuid
- ORDER BY subq_28.ds__day DESC
+ subq_30.user
+ , subq_30.ds__day
+ , subq_30.mf_internal_uuid
+ ORDER BY subq_27.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS ds__day
- , FIRST_VALUE(subq_28.metric_time__day) OVER (
+ , FIRST_VALUE(subq_27.metric_time__day) OVER (
PARTITION BY
- subq_31.user
- , subq_31.ds__day
- , subq_31.mf_internal_uuid
- ORDER BY subq_28.ds__day DESC
+ subq_30.user
+ , subq_30.ds__day
+ , subq_30.mf_internal_uuid
+ ORDER BY subq_27.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS metric_time__day
- , FIRST_VALUE(subq_28.user) OVER (
+ , FIRST_VALUE(subq_27.user) OVER (
PARTITION BY
- subq_31.user
- , subq_31.ds__day
- , subq_31.mf_internal_uuid
- ORDER BY subq_28.ds__day DESC
+ subq_30.user
+ , subq_30.ds__day
+ , subq_30.mf_internal_uuid
+ ORDER BY subq_27.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS user
- , subq_31.mf_internal_uuid AS mf_internal_uuid
- , subq_31.buys AS buys
+ , subq_30.mf_internal_uuid AS mf_internal_uuid
+ , subq_30.buys AS buys
FROM (
-- Read Elements From Semantic Model 'visits_source'
-- Metric Time Dimension 'ds'
@@ -111,7 +103,7 @@ FROM (
, 1 AS visits
FROM ***************************.fct_visits visits_source_src_28000
WHERE DATE_TRUNC('day', ds) BETWEEN '2020-01-01' AND '2020-01-02'
- ) subq_28
+ ) subq_27
INNER JOIN (
-- Read Elements From Semantic Model 'buys_source'
-- Metric Time Dimension 'ds'
@@ -122,29 +114,29 @@ FROM (
, 1 AS buys
, GEN_RANDOM_UUID() AS mf_internal_uuid
FROM ***************************.fct_buys buys_source_src_28000
- ) subq_31
+ ) subq_30
ON
(
- subq_28.user = subq_31.user
+ subq_27.user = subq_30.user
) AND (
(
- subq_28.ds__day <= subq_31.ds__day
+ subq_27.ds__day <= subq_30.ds__day
) AND (
- subq_28.ds__day > subq_31.ds__day - INTERVAL 7 day
+ subq_27.ds__day > subq_30.ds__day - INTERVAL 7 day
)
)
- ) subq_32
+ ) subq_31
GROUP BY
metric_time__day
, visit__referrer_id
- ) subq_35
+ ) subq_34
ON
(
- subq_24.visit__referrer_id = subq_35.visit__referrer_id
+ subq_23.visit__referrer_id = subq_34.visit__referrer_id
) AND (
- subq_24.metric_time__day = subq_35.metric_time__day
+ subq_23.metric_time__day = subq_34.metric_time__day
)
GROUP BY
- COALESCE(subq_24.metric_time__day, subq_35.metric_time__day)
- , COALESCE(subq_24.visit__referrer_id, subq_35.visit__referrer_id)
-) subq_36
+ COALESCE(subq_23.metric_time__day, subq_34.metric_time__day)
+ , COALESCE(subq_23.visit__referrer_id, subq_34.visit__referrer_id)
+) subq_35
diff --git a/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/Postgres/test_conversion_metric_with_categorical_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/Postgres/test_conversion_metric_with_categorical_filter__plan0_optimized.sql
index aba6c7e3c7..19067e0b9a 100644
--- a/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/Postgres/test_conversion_metric_with_categorical_filter__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/Postgres/test_conversion_metric_with_categorical_filter__plan0_optimized.sql
@@ -6,40 +6,32 @@ SELECT
FROM (
-- Combine Aggregated Outputs
SELECT
- COALESCE(subq_21.metric_time__day, subq_31.metric_time__day) AS metric_time__day
- , COALESCE(subq_21.visit__referrer_id, subq_31.visit__referrer_id) AS visit__referrer_id
- , MAX(subq_21.visits) AS visits
- , MAX(subq_31.buys) AS buys
+ COALESCE(subq_20.metric_time__day, subq_30.metric_time__day) AS metric_time__day
+ , COALESCE(subq_20.visit__referrer_id, subq_30.visit__referrer_id) AS visit__referrer_id
+ , MAX(subq_20.visits) AS visits
+ , MAX(subq_30.buys) AS buys
FROM (
-- Constrain Output with WHERE
+ -- Pass Only Elements: ['visits', 'visit__referrer_id', 'metric_time__day']
-- Aggregate Measures
SELECT
metric_time__day
, visit__referrer_id
, SUM(visits) AS visits
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['visits', 'visit__referrer_id', 'metric_time__day']
+ -- Read Elements From Semantic Model 'visits_source'
+ -- Metric Time Dimension 'ds'
SELECT
- metric_time__day
- , visit__referrer_id
- , visits
- FROM (
- -- Read Elements From Semantic Model 'visits_source'
- -- Metric Time Dimension 'ds'
- SELECT
- DATE_TRUNC('day', ds) AS metric_time__day
- , referrer_id AS visit__referrer_id
- , 1 AS visits
- FROM ***************************.fct_visits visits_source_src_28000
- ) subq_17
- WHERE visit__referrer_id = 'ref_id_01'
- ) subq_19
+ DATE_TRUNC('day', ds) AS metric_time__day
+ , referrer_id AS visit__referrer_id
+ , 1 AS visits
+ FROM ***************************.fct_visits visits_source_src_28000
+ ) subq_17
WHERE visit__referrer_id = 'ref_id_01'
GROUP BY
metric_time__day
, visit__referrer_id
- ) subq_21
+ ) subq_20
FULL OUTER JOIN (
-- Find conversions for user within the range of INF
-- Pass Only Elements: ['buys', 'visit__referrer_id', 'metric_time__day']
@@ -51,48 +43,48 @@ FROM (
FROM (
-- Dedupe the fanout with mf_internal_uuid in the conversion data set
SELECT DISTINCT
- FIRST_VALUE(subq_24.visits) OVER (
+ FIRST_VALUE(subq_23.visits) OVER (
PARTITION BY
- subq_27.user
- , subq_27.ds__day
- , subq_27.mf_internal_uuid
- ORDER BY subq_24.ds__day DESC
+ subq_26.user
+ , subq_26.ds__day
+ , subq_26.mf_internal_uuid
+ ORDER BY subq_23.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS visits
- , FIRST_VALUE(subq_24.visit__referrer_id) OVER (
+ , FIRST_VALUE(subq_23.visit__referrer_id) OVER (
PARTITION BY
- subq_27.user
- , subq_27.ds__day
- , subq_27.mf_internal_uuid
- ORDER BY subq_24.ds__day DESC
+ subq_26.user
+ , subq_26.ds__day
+ , subq_26.mf_internal_uuid
+ ORDER BY subq_23.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS visit__referrer_id
- , FIRST_VALUE(subq_24.ds__day) OVER (
+ , FIRST_VALUE(subq_23.ds__day) OVER (
PARTITION BY
- subq_27.user
- , subq_27.ds__day
- , subq_27.mf_internal_uuid
- ORDER BY subq_24.ds__day DESC
+ subq_26.user
+ , subq_26.ds__day
+ , subq_26.mf_internal_uuid
+ ORDER BY subq_23.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS ds__day
- , FIRST_VALUE(subq_24.metric_time__day) OVER (
+ , FIRST_VALUE(subq_23.metric_time__day) OVER (
PARTITION BY
- subq_27.user
- , subq_27.ds__day
- , subq_27.mf_internal_uuid
- ORDER BY subq_24.ds__day DESC
+ subq_26.user
+ , subq_26.ds__day
+ , subq_26.mf_internal_uuid
+ ORDER BY subq_23.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS metric_time__day
- , FIRST_VALUE(subq_24.user) OVER (
+ , FIRST_VALUE(subq_23.user) OVER (
PARTITION BY
- subq_27.user
- , subq_27.ds__day
- , subq_27.mf_internal_uuid
- ORDER BY subq_24.ds__day DESC
+ subq_26.user
+ , subq_26.ds__day
+ , subq_26.mf_internal_uuid
+ ORDER BY subq_23.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS user
- , subq_27.mf_internal_uuid AS mf_internal_uuid
- , subq_27.buys AS buys
+ , subq_26.mf_internal_uuid AS mf_internal_uuid
+ , subq_26.buys AS buys
FROM (
-- Read Elements From Semantic Model 'visits_source'
-- Metric Time Dimension 'ds'
@@ -104,7 +96,7 @@ FROM (
, referrer_id AS visit__referrer_id
, 1 AS visits
FROM ***************************.fct_visits visits_source_src_28000
- ) subq_24
+ ) subq_23
INNER JOIN (
-- Read Elements From Semantic Model 'buys_source'
-- Metric Time Dimension 'ds'
@@ -115,25 +107,25 @@ FROM (
, 1 AS buys
, GEN_RANDOM_UUID() AS mf_internal_uuid
FROM ***************************.fct_buys buys_source_src_28000
- ) subq_27
+ ) subq_26
ON
(
- subq_24.user = subq_27.user
+ subq_23.user = subq_26.user
) AND (
- (subq_24.ds__day <= subq_27.ds__day)
+ (subq_23.ds__day <= subq_26.ds__day)
)
- ) subq_28
+ ) subq_27
GROUP BY
metric_time__day
, visit__referrer_id
- ) subq_31
+ ) subq_30
ON
(
- subq_21.visit__referrer_id = subq_31.visit__referrer_id
+ subq_20.visit__referrer_id = subq_30.visit__referrer_id
) AND (
- subq_21.metric_time__day = subq_31.metric_time__day
+ subq_20.metric_time__day = subq_30.metric_time__day
)
GROUP BY
- COALESCE(subq_21.metric_time__day, subq_31.metric_time__day)
- , COALESCE(subq_21.visit__referrer_id, subq_31.visit__referrer_id)
-) subq_32
+ COALESCE(subq_20.metric_time__day, subq_30.metric_time__day)
+ , COALESCE(subq_20.visit__referrer_id, subq_30.visit__referrer_id)
+) subq_31
diff --git a/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/Postgres/test_conversion_metric_with_time_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/Postgres/test_conversion_metric_with_time_constraint__plan0_optimized.sql
index f7288b11b1..5c03983d10 100644
--- a/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/Postgres/test_conversion_metric_with_time_constraint__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/Postgres/test_conversion_metric_with_time_constraint__plan0_optimized.sql
@@ -5,41 +5,34 @@ SELECT
FROM (
-- Combine Aggregated Outputs
SELECT
- COALESCE(subq_24.visit__referrer_id, subq_35.visit__referrer_id) AS visit__referrer_id
- , MAX(subq_24.visits) AS visits
- , MAX(subq_35.buys) AS buys
+ COALESCE(subq_23.visit__referrer_id, subq_34.visit__referrer_id) AS visit__referrer_id
+ , MAX(subq_23.visits) AS visits
+ , MAX(subq_34.buys) AS buys
FROM (
-- Constrain Output with WHERE
+ -- Constrain Time Range to [2020-01-01T00:00:00, 2020-01-02T00:00:00]
+ -- Pass Only Elements: ['visits', 'visit__referrer_id']
-- Aggregate Measures
SELECT
visit__referrer_id
, SUM(visits) AS visits
FROM (
- -- Constrain Output with WHERE
- -- Constrain Time Range to [2020-01-01T00:00:00, 2020-01-02T00:00:00]
- -- Pass Only Elements: ['visits', 'visit__referrer_id']
+ -- Read Elements From Semantic Model 'visits_source'
+ -- Metric Time Dimension 'ds'
SELECT
- visit__referrer_id
- , visits
- FROM (
- -- Read Elements From Semantic Model 'visits_source'
- -- Metric Time Dimension 'ds'
- SELECT
- DATE_TRUNC('day', ds) AS metric_time__day
- , referrer_id AS visit__referrer_id
- , 1 AS visits
- FROM ***************************.fct_visits visits_source_src_28000
- ) subq_19
- WHERE (
- metric_time__day BETWEEN '2020-01-01' AND '2020-01-02'
- ) AND (
- visit__referrer_id = 'ref_id_01'
- )
- ) subq_22
- WHERE visit__referrer_id = 'ref_id_01'
+ DATE_TRUNC('day', ds) AS metric_time__day
+ , referrer_id AS visit__referrer_id
+ , 1 AS visits
+ FROM ***************************.fct_visits visits_source_src_28000
+ ) subq_19
+ WHERE (
+ metric_time__day BETWEEN '2020-01-01' AND '2020-01-02'
+ ) AND (
+ visit__referrer_id = 'ref_id_01'
+ )
GROUP BY
visit__referrer_id
- ) subq_24
+ ) subq_23
FULL OUTER JOIN (
-- Find conversions for user within the range of INF
-- Pass Only Elements: ['buys', 'visit__referrer_id']
@@ -50,40 +43,40 @@ FROM (
FROM (
-- Dedupe the fanout with mf_internal_uuid in the conversion data set
SELECT DISTINCT
- FIRST_VALUE(subq_28.visits) OVER (
+ FIRST_VALUE(subq_27.visits) OVER (
PARTITION BY
- subq_31.user
- , subq_31.ds__day
- , subq_31.mf_internal_uuid
- ORDER BY subq_28.ds__day DESC
+ subq_30.user
+ , subq_30.ds__day
+ , subq_30.mf_internal_uuid
+ ORDER BY subq_27.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS visits
- , FIRST_VALUE(subq_28.visit__referrer_id) OVER (
+ , FIRST_VALUE(subq_27.visit__referrer_id) OVER (
PARTITION BY
- subq_31.user
- , subq_31.ds__day
- , subq_31.mf_internal_uuid
- ORDER BY subq_28.ds__day DESC
+ subq_30.user
+ , subq_30.ds__day
+ , subq_30.mf_internal_uuid
+ ORDER BY subq_27.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS visit__referrer_id
- , FIRST_VALUE(subq_28.ds__day) OVER (
+ , FIRST_VALUE(subq_27.ds__day) OVER (
PARTITION BY
- subq_31.user
- , subq_31.ds__day
- , subq_31.mf_internal_uuid
- ORDER BY subq_28.ds__day DESC
+ subq_30.user
+ , subq_30.ds__day
+ , subq_30.mf_internal_uuid
+ ORDER BY subq_27.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS ds__day
- , FIRST_VALUE(subq_28.user) OVER (
+ , FIRST_VALUE(subq_27.user) OVER (
PARTITION BY
- subq_31.user
- , subq_31.ds__day
- , subq_31.mf_internal_uuid
- ORDER BY subq_28.ds__day DESC
+ subq_30.user
+ , subq_30.ds__day
+ , subq_30.mf_internal_uuid
+ ORDER BY subq_27.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS user
- , subq_31.mf_internal_uuid AS mf_internal_uuid
- , subq_31.buys AS buys
+ , subq_30.mf_internal_uuid AS mf_internal_uuid
+ , subq_30.buys AS buys
FROM (
-- Read Elements From Semantic Model 'visits_source'
-- Metric Time Dimension 'ds'
@@ -96,7 +89,7 @@ FROM (
, 1 AS visits
FROM ***************************.fct_visits visits_source_src_28000
WHERE DATE_TRUNC('day', ds) BETWEEN '2020-01-01' AND '2020-01-02'
- ) subq_28
+ ) subq_27
INNER JOIN (
-- Read Elements From Semantic Model 'buys_source'
-- Metric Time Dimension 'ds'
@@ -107,19 +100,19 @@ FROM (
, 1 AS buys
, GEN_RANDOM_UUID() AS mf_internal_uuid
FROM ***************************.fct_buys buys_source_src_28000
- ) subq_31
+ ) subq_30
ON
(
- subq_28.user = subq_31.user
+ subq_27.user = subq_30.user
) AND (
- (subq_28.ds__day <= subq_31.ds__day)
+ (subq_27.ds__day <= subq_30.ds__day)
)
- ) subq_32
+ ) subq_31
GROUP BY
visit__referrer_id
- ) subq_35
+ ) subq_34
ON
- subq_24.visit__referrer_id = subq_35.visit__referrer_id
+ subq_23.visit__referrer_id = subq_34.visit__referrer_id
GROUP BY
- COALESCE(subq_24.visit__referrer_id, subq_35.visit__referrer_id)
-) subq_36
+ COALESCE(subq_23.visit__referrer_id, subq_34.visit__referrer_id)
+) subq_35
diff --git a/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/Postgres/test_conversion_metric_with_window_and_time_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/Postgres/test_conversion_metric_with_window_and_time_constraint__plan0_optimized.sql
index 20bd2f76aa..c0bf988aa1 100644
--- a/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/Postgres/test_conversion_metric_with_window_and_time_constraint__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/Postgres/test_conversion_metric_with_window_and_time_constraint__plan0_optimized.sql
@@ -6,45 +6,37 @@ SELECT
FROM (
-- Combine Aggregated Outputs
SELECT
- COALESCE(subq_24.metric_time__day, subq_35.metric_time__day) AS metric_time__day
- , COALESCE(subq_24.visit__referrer_id, subq_35.visit__referrer_id) AS visit__referrer_id
- , MAX(subq_24.visits) AS visits
- , MAX(subq_35.buys) AS buys
+ COALESCE(subq_23.metric_time__day, subq_34.metric_time__day) AS metric_time__day
+ , COALESCE(subq_23.visit__referrer_id, subq_34.visit__referrer_id) AS visit__referrer_id
+ , MAX(subq_23.visits) AS visits
+ , MAX(subq_34.buys) AS buys
FROM (
-- Constrain Output with WHERE
+ -- Constrain Time Range to [2020-01-01T00:00:00, 2020-01-02T00:00:00]
+ -- Pass Only Elements: ['visits', 'visit__referrer_id', 'metric_time__day']
-- Aggregate Measures
SELECT
metric_time__day
, visit__referrer_id
, SUM(visits) AS visits
FROM (
- -- Constrain Output with WHERE
- -- Constrain Time Range to [2020-01-01T00:00:00, 2020-01-02T00:00:00]
- -- Pass Only Elements: ['visits', 'visit__referrer_id', 'metric_time__day']
+ -- Read Elements From Semantic Model 'visits_source'
+ -- Metric Time Dimension 'ds'
SELECT
- metric_time__day
- , visit__referrer_id
- , visits
- FROM (
- -- Read Elements From Semantic Model 'visits_source'
- -- Metric Time Dimension 'ds'
- SELECT
- DATE_TRUNC('day', ds) AS metric_time__day
- , referrer_id AS visit__referrer_id
- , 1 AS visits
- FROM ***************************.fct_visits visits_source_src_28000
- ) subq_19
- WHERE (
- metric_time__day BETWEEN '2020-01-01' AND '2020-01-02'
- ) AND (
- visit__referrer_id = 'ref_id_01'
- )
- ) subq_22
- WHERE visit__referrer_id = 'ref_id_01'
+ DATE_TRUNC('day', ds) AS metric_time__day
+ , referrer_id AS visit__referrer_id
+ , 1 AS visits
+ FROM ***************************.fct_visits visits_source_src_28000
+ ) subq_19
+ WHERE (
+ metric_time__day BETWEEN '2020-01-01' AND '2020-01-02'
+ ) AND (
+ visit__referrer_id = 'ref_id_01'
+ )
GROUP BY
metric_time__day
, visit__referrer_id
- ) subq_24
+ ) subq_23
FULL OUTER JOIN (
-- Find conversions for user within the range of 7 day
-- Pass Only Elements: ['buys', 'visit__referrer_id', 'metric_time__day']
@@ -56,48 +48,48 @@ FROM (
FROM (
-- Dedupe the fanout with mf_internal_uuid in the conversion data set
SELECT DISTINCT
- FIRST_VALUE(subq_28.visits) OVER (
+ FIRST_VALUE(subq_27.visits) OVER (
PARTITION BY
- subq_31.user
- , subq_31.ds__day
- , subq_31.mf_internal_uuid
- ORDER BY subq_28.ds__day DESC
+ subq_30.user
+ , subq_30.ds__day
+ , subq_30.mf_internal_uuid
+ ORDER BY subq_27.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS visits
- , FIRST_VALUE(subq_28.visit__referrer_id) OVER (
+ , FIRST_VALUE(subq_27.visit__referrer_id) OVER (
PARTITION BY
- subq_31.user
- , subq_31.ds__day
- , subq_31.mf_internal_uuid
- ORDER BY subq_28.ds__day DESC
+ subq_30.user
+ , subq_30.ds__day
+ , subq_30.mf_internal_uuid
+ ORDER BY subq_27.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS visit__referrer_id
- , FIRST_VALUE(subq_28.ds__day) OVER (
+ , FIRST_VALUE(subq_27.ds__day) OVER (
PARTITION BY
- subq_31.user
- , subq_31.ds__day
- , subq_31.mf_internal_uuid
- ORDER BY subq_28.ds__day DESC
+ subq_30.user
+ , subq_30.ds__day
+ , subq_30.mf_internal_uuid
+ ORDER BY subq_27.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS ds__day
- , FIRST_VALUE(subq_28.metric_time__day) OVER (
+ , FIRST_VALUE(subq_27.metric_time__day) OVER (
PARTITION BY
- subq_31.user
- , subq_31.ds__day
- , subq_31.mf_internal_uuid
- ORDER BY subq_28.ds__day DESC
+ subq_30.user
+ , subq_30.ds__day
+ , subq_30.mf_internal_uuid
+ ORDER BY subq_27.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS metric_time__day
- , FIRST_VALUE(subq_28.user) OVER (
+ , FIRST_VALUE(subq_27.user) OVER (
PARTITION BY
- subq_31.user
- , subq_31.ds__day
- , subq_31.mf_internal_uuid
- ORDER BY subq_28.ds__day DESC
+ subq_30.user
+ , subq_30.ds__day
+ , subq_30.mf_internal_uuid
+ ORDER BY subq_27.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS user
- , subq_31.mf_internal_uuid AS mf_internal_uuid
- , subq_31.buys AS buys
+ , subq_30.mf_internal_uuid AS mf_internal_uuid
+ , subq_30.buys AS buys
FROM (
-- Read Elements From Semantic Model 'visits_source'
-- Metric Time Dimension 'ds'
@@ -111,7 +103,7 @@ FROM (
, 1 AS visits
FROM ***************************.fct_visits visits_source_src_28000
WHERE DATE_TRUNC('day', ds) BETWEEN '2020-01-01' AND '2020-01-02'
- ) subq_28
+ ) subq_27
INNER JOIN (
-- Read Elements From Semantic Model 'buys_source'
-- Metric Time Dimension 'ds'
@@ -122,29 +114,29 @@ FROM (
, 1 AS buys
, GEN_RANDOM_UUID() AS mf_internal_uuid
FROM ***************************.fct_buys buys_source_src_28000
- ) subq_31
+ ) subq_30
ON
(
- subq_28.user = subq_31.user
+ subq_27.user = subq_30.user
) AND (
(
- subq_28.ds__day <= subq_31.ds__day
+ subq_27.ds__day <= subq_30.ds__day
) AND (
- subq_28.ds__day > subq_31.ds__day - MAKE_INTERVAL(days => 7)
+ subq_27.ds__day > subq_30.ds__day - MAKE_INTERVAL(days => 7)
)
)
- ) subq_32
+ ) subq_31
GROUP BY
metric_time__day
, visit__referrer_id
- ) subq_35
+ ) subq_34
ON
(
- subq_24.visit__referrer_id = subq_35.visit__referrer_id
+ subq_23.visit__referrer_id = subq_34.visit__referrer_id
) AND (
- subq_24.metric_time__day = subq_35.metric_time__day
+ subq_23.metric_time__day = subq_34.metric_time__day
)
GROUP BY
- COALESCE(subq_24.metric_time__day, subq_35.metric_time__day)
- , COALESCE(subq_24.visit__referrer_id, subq_35.visit__referrer_id)
-) subq_36
+ COALESCE(subq_23.metric_time__day, subq_34.metric_time__day)
+ , COALESCE(subq_23.visit__referrer_id, subq_34.visit__referrer_id)
+) subq_35
diff --git a/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/Redshift/test_conversion_metric_with_categorical_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/Redshift/test_conversion_metric_with_categorical_filter__plan0_optimized.sql
index 7466aad287..173af1eafe 100644
--- a/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/Redshift/test_conversion_metric_with_categorical_filter__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/Redshift/test_conversion_metric_with_categorical_filter__plan0_optimized.sql
@@ -6,40 +6,32 @@ SELECT
FROM (
-- Combine Aggregated Outputs
SELECT
- COALESCE(subq_21.metric_time__day, subq_31.metric_time__day) AS metric_time__day
- , COALESCE(subq_21.visit__referrer_id, subq_31.visit__referrer_id) AS visit__referrer_id
- , MAX(subq_21.visits) AS visits
- , MAX(subq_31.buys) AS buys
+ COALESCE(subq_20.metric_time__day, subq_30.metric_time__day) AS metric_time__day
+ , COALESCE(subq_20.visit__referrer_id, subq_30.visit__referrer_id) AS visit__referrer_id
+ , MAX(subq_20.visits) AS visits
+ , MAX(subq_30.buys) AS buys
FROM (
-- Constrain Output with WHERE
+ -- Pass Only Elements: ['visits', 'visit__referrer_id', 'metric_time__day']
-- Aggregate Measures
SELECT
metric_time__day
, visit__referrer_id
, SUM(visits) AS visits
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['visits', 'visit__referrer_id', 'metric_time__day']
+ -- Read Elements From Semantic Model 'visits_source'
+ -- Metric Time Dimension 'ds'
SELECT
- metric_time__day
- , visit__referrer_id
- , visits
- FROM (
- -- Read Elements From Semantic Model 'visits_source'
- -- Metric Time Dimension 'ds'
- SELECT
- DATE_TRUNC('day', ds) AS metric_time__day
- , referrer_id AS visit__referrer_id
- , 1 AS visits
- FROM ***************************.fct_visits visits_source_src_28000
- ) subq_17
- WHERE visit__referrer_id = 'ref_id_01'
- ) subq_19
+ DATE_TRUNC('day', ds) AS metric_time__day
+ , referrer_id AS visit__referrer_id
+ , 1 AS visits
+ FROM ***************************.fct_visits visits_source_src_28000
+ ) subq_17
WHERE visit__referrer_id = 'ref_id_01'
GROUP BY
metric_time__day
, visit__referrer_id
- ) subq_21
+ ) subq_20
FULL OUTER JOIN (
-- Find conversions for user within the range of INF
-- Pass Only Elements: ['buys', 'visit__referrer_id', 'metric_time__day']
@@ -51,48 +43,48 @@ FROM (
FROM (
-- Dedupe the fanout with mf_internal_uuid in the conversion data set
SELECT DISTINCT
- FIRST_VALUE(subq_24.visits) OVER (
+ FIRST_VALUE(subq_23.visits) OVER (
PARTITION BY
- subq_27.user
- , subq_27.ds__day
- , subq_27.mf_internal_uuid
- ORDER BY subq_24.ds__day DESC
+ subq_26.user
+ , subq_26.ds__day
+ , subq_26.mf_internal_uuid
+ ORDER BY subq_23.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS visits
- , FIRST_VALUE(subq_24.visit__referrer_id) OVER (
+ , FIRST_VALUE(subq_23.visit__referrer_id) OVER (
PARTITION BY
- subq_27.user
- , subq_27.ds__day
- , subq_27.mf_internal_uuid
- ORDER BY subq_24.ds__day DESC
+ subq_26.user
+ , subq_26.ds__day
+ , subq_26.mf_internal_uuid
+ ORDER BY subq_23.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS visit__referrer_id
- , FIRST_VALUE(subq_24.ds__day) OVER (
+ , FIRST_VALUE(subq_23.ds__day) OVER (
PARTITION BY
- subq_27.user
- , subq_27.ds__day
- , subq_27.mf_internal_uuid
- ORDER BY subq_24.ds__day DESC
+ subq_26.user
+ , subq_26.ds__day
+ , subq_26.mf_internal_uuid
+ ORDER BY subq_23.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS ds__day
- , FIRST_VALUE(subq_24.metric_time__day) OVER (
+ , FIRST_VALUE(subq_23.metric_time__day) OVER (
PARTITION BY
- subq_27.user
- , subq_27.ds__day
- , subq_27.mf_internal_uuid
- ORDER BY subq_24.ds__day DESC
+ subq_26.user
+ , subq_26.ds__day
+ , subq_26.mf_internal_uuid
+ ORDER BY subq_23.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS metric_time__day
- , FIRST_VALUE(subq_24.user) OVER (
+ , FIRST_VALUE(subq_23.user) OVER (
PARTITION BY
- subq_27.user
- , subq_27.ds__day
- , subq_27.mf_internal_uuid
- ORDER BY subq_24.ds__day DESC
+ subq_26.user
+ , subq_26.ds__day
+ , subq_26.mf_internal_uuid
+ ORDER BY subq_23.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS user
- , subq_27.mf_internal_uuid AS mf_internal_uuid
- , subq_27.buys AS buys
+ , subq_26.mf_internal_uuid AS mf_internal_uuid
+ , subq_26.buys AS buys
FROM (
-- Read Elements From Semantic Model 'visits_source'
-- Metric Time Dimension 'ds'
@@ -104,7 +96,7 @@ FROM (
, referrer_id AS visit__referrer_id
, 1 AS visits
FROM ***************************.fct_visits visits_source_src_28000
- ) subq_24
+ ) subq_23
INNER JOIN (
-- Read Elements From Semantic Model 'buys_source'
-- Metric Time Dimension 'ds'
@@ -115,25 +107,25 @@ FROM (
, 1 AS buys
, CONCAT(CAST(RANDOM()*100000000 AS INT)::VARCHAR,CAST(RANDOM()*100000000 AS INT)::VARCHAR) AS mf_internal_uuid
FROM ***************************.fct_buys buys_source_src_28000
- ) subq_27
+ ) subq_26
ON
(
- subq_24.user = subq_27.user
+ subq_23.user = subq_26.user
) AND (
- (subq_24.ds__day <= subq_27.ds__day)
+ (subq_23.ds__day <= subq_26.ds__day)
)
- ) subq_28
+ ) subq_27
GROUP BY
metric_time__day
, visit__referrer_id
- ) subq_31
+ ) subq_30
ON
(
- subq_21.visit__referrer_id = subq_31.visit__referrer_id
+ subq_20.visit__referrer_id = subq_30.visit__referrer_id
) AND (
- subq_21.metric_time__day = subq_31.metric_time__day
+ subq_20.metric_time__day = subq_30.metric_time__day
)
GROUP BY
- COALESCE(subq_21.metric_time__day, subq_31.metric_time__day)
- , COALESCE(subq_21.visit__referrer_id, subq_31.visit__referrer_id)
-) subq_32
+ COALESCE(subq_20.metric_time__day, subq_30.metric_time__day)
+ , COALESCE(subq_20.visit__referrer_id, subq_30.visit__referrer_id)
+) subq_31
diff --git a/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/Redshift/test_conversion_metric_with_time_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/Redshift/test_conversion_metric_with_time_constraint__plan0_optimized.sql
index 10e41322d2..44d69f4ac3 100644
--- a/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/Redshift/test_conversion_metric_with_time_constraint__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/Redshift/test_conversion_metric_with_time_constraint__plan0_optimized.sql
@@ -5,41 +5,34 @@ SELECT
FROM (
-- Combine Aggregated Outputs
SELECT
- COALESCE(subq_24.visit__referrer_id, subq_35.visit__referrer_id) AS visit__referrer_id
- , MAX(subq_24.visits) AS visits
- , MAX(subq_35.buys) AS buys
+ COALESCE(subq_23.visit__referrer_id, subq_34.visit__referrer_id) AS visit__referrer_id
+ , MAX(subq_23.visits) AS visits
+ , MAX(subq_34.buys) AS buys
FROM (
-- Constrain Output with WHERE
+ -- Constrain Time Range to [2020-01-01T00:00:00, 2020-01-02T00:00:00]
+ -- Pass Only Elements: ['visits', 'visit__referrer_id']
-- Aggregate Measures
SELECT
visit__referrer_id
, SUM(visits) AS visits
FROM (
- -- Constrain Output with WHERE
- -- Constrain Time Range to [2020-01-01T00:00:00, 2020-01-02T00:00:00]
- -- Pass Only Elements: ['visits', 'visit__referrer_id']
+ -- Read Elements From Semantic Model 'visits_source'
+ -- Metric Time Dimension 'ds'
SELECT
- visit__referrer_id
- , visits
- FROM (
- -- Read Elements From Semantic Model 'visits_source'
- -- Metric Time Dimension 'ds'
- SELECT
- DATE_TRUNC('day', ds) AS metric_time__day
- , referrer_id AS visit__referrer_id
- , 1 AS visits
- FROM ***************************.fct_visits visits_source_src_28000
- ) subq_19
- WHERE (
- metric_time__day BETWEEN '2020-01-01' AND '2020-01-02'
- ) AND (
- visit__referrer_id = 'ref_id_01'
- )
- ) subq_22
- WHERE visit__referrer_id = 'ref_id_01'
+ DATE_TRUNC('day', ds) AS metric_time__day
+ , referrer_id AS visit__referrer_id
+ , 1 AS visits
+ FROM ***************************.fct_visits visits_source_src_28000
+ ) subq_19
+ WHERE (
+ metric_time__day BETWEEN '2020-01-01' AND '2020-01-02'
+ ) AND (
+ visit__referrer_id = 'ref_id_01'
+ )
GROUP BY
visit__referrer_id
- ) subq_24
+ ) subq_23
FULL OUTER JOIN (
-- Find conversions for user within the range of INF
-- Pass Only Elements: ['buys', 'visit__referrer_id']
@@ -50,40 +43,40 @@ FROM (
FROM (
-- Dedupe the fanout with mf_internal_uuid in the conversion data set
SELECT DISTINCT
- FIRST_VALUE(subq_28.visits) OVER (
+ FIRST_VALUE(subq_27.visits) OVER (
PARTITION BY
- subq_31.user
- , subq_31.ds__day
- , subq_31.mf_internal_uuid
- ORDER BY subq_28.ds__day DESC
+ subq_30.user
+ , subq_30.ds__day
+ , subq_30.mf_internal_uuid
+ ORDER BY subq_27.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS visits
- , FIRST_VALUE(subq_28.visit__referrer_id) OVER (
+ , FIRST_VALUE(subq_27.visit__referrer_id) OVER (
PARTITION BY
- subq_31.user
- , subq_31.ds__day
- , subq_31.mf_internal_uuid
- ORDER BY subq_28.ds__day DESC
+ subq_30.user
+ , subq_30.ds__day
+ , subq_30.mf_internal_uuid
+ ORDER BY subq_27.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS visit__referrer_id
- , FIRST_VALUE(subq_28.ds__day) OVER (
+ , FIRST_VALUE(subq_27.ds__day) OVER (
PARTITION BY
- subq_31.user
- , subq_31.ds__day
- , subq_31.mf_internal_uuid
- ORDER BY subq_28.ds__day DESC
+ subq_30.user
+ , subq_30.ds__day
+ , subq_30.mf_internal_uuid
+ ORDER BY subq_27.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS ds__day
- , FIRST_VALUE(subq_28.user) OVER (
+ , FIRST_VALUE(subq_27.user) OVER (
PARTITION BY
- subq_31.user
- , subq_31.ds__day
- , subq_31.mf_internal_uuid
- ORDER BY subq_28.ds__day DESC
+ subq_30.user
+ , subq_30.ds__day
+ , subq_30.mf_internal_uuid
+ ORDER BY subq_27.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS user
- , subq_31.mf_internal_uuid AS mf_internal_uuid
- , subq_31.buys AS buys
+ , subq_30.mf_internal_uuid AS mf_internal_uuid
+ , subq_30.buys AS buys
FROM (
-- Read Elements From Semantic Model 'visits_source'
-- Metric Time Dimension 'ds'
@@ -96,7 +89,7 @@ FROM (
, 1 AS visits
FROM ***************************.fct_visits visits_source_src_28000
WHERE DATE_TRUNC('day', ds) BETWEEN '2020-01-01' AND '2020-01-02'
- ) subq_28
+ ) subq_27
INNER JOIN (
-- Read Elements From Semantic Model 'buys_source'
-- Metric Time Dimension 'ds'
@@ -107,19 +100,19 @@ FROM (
, 1 AS buys
, CONCAT(CAST(RANDOM()*100000000 AS INT)::VARCHAR,CAST(RANDOM()*100000000 AS INT)::VARCHAR) AS mf_internal_uuid
FROM ***************************.fct_buys buys_source_src_28000
- ) subq_31
+ ) subq_30
ON
(
- subq_28.user = subq_31.user
+ subq_27.user = subq_30.user
) AND (
- (subq_28.ds__day <= subq_31.ds__day)
+ (subq_27.ds__day <= subq_30.ds__day)
)
- ) subq_32
+ ) subq_31
GROUP BY
visit__referrer_id
- ) subq_35
+ ) subq_34
ON
- subq_24.visit__referrer_id = subq_35.visit__referrer_id
+ subq_23.visit__referrer_id = subq_34.visit__referrer_id
GROUP BY
- COALESCE(subq_24.visit__referrer_id, subq_35.visit__referrer_id)
-) subq_36
+ COALESCE(subq_23.visit__referrer_id, subq_34.visit__referrer_id)
+) subq_35
diff --git a/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/Redshift/test_conversion_metric_with_window_and_time_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/Redshift/test_conversion_metric_with_window_and_time_constraint__plan0_optimized.sql
index f1ba60e371..f811654de8 100644
--- a/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/Redshift/test_conversion_metric_with_window_and_time_constraint__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/Redshift/test_conversion_metric_with_window_and_time_constraint__plan0_optimized.sql
@@ -6,45 +6,37 @@ SELECT
FROM (
-- Combine Aggregated Outputs
SELECT
- COALESCE(subq_24.metric_time__day, subq_35.metric_time__day) AS metric_time__day
- , COALESCE(subq_24.visit__referrer_id, subq_35.visit__referrer_id) AS visit__referrer_id
- , MAX(subq_24.visits) AS visits
- , MAX(subq_35.buys) AS buys
+ COALESCE(subq_23.metric_time__day, subq_34.metric_time__day) AS metric_time__day
+ , COALESCE(subq_23.visit__referrer_id, subq_34.visit__referrer_id) AS visit__referrer_id
+ , MAX(subq_23.visits) AS visits
+ , MAX(subq_34.buys) AS buys
FROM (
-- Constrain Output with WHERE
+ -- Constrain Time Range to [2020-01-01T00:00:00, 2020-01-02T00:00:00]
+ -- Pass Only Elements: ['visits', 'visit__referrer_id', 'metric_time__day']
-- Aggregate Measures
SELECT
metric_time__day
, visit__referrer_id
, SUM(visits) AS visits
FROM (
- -- Constrain Output with WHERE
- -- Constrain Time Range to [2020-01-01T00:00:00, 2020-01-02T00:00:00]
- -- Pass Only Elements: ['visits', 'visit__referrer_id', 'metric_time__day']
+ -- Read Elements From Semantic Model 'visits_source'
+ -- Metric Time Dimension 'ds'
SELECT
- metric_time__day
- , visit__referrer_id
- , visits
- FROM (
- -- Read Elements From Semantic Model 'visits_source'
- -- Metric Time Dimension 'ds'
- SELECT
- DATE_TRUNC('day', ds) AS metric_time__day
- , referrer_id AS visit__referrer_id
- , 1 AS visits
- FROM ***************************.fct_visits visits_source_src_28000
- ) subq_19
- WHERE (
- metric_time__day BETWEEN '2020-01-01' AND '2020-01-02'
- ) AND (
- visit__referrer_id = 'ref_id_01'
- )
- ) subq_22
- WHERE visit__referrer_id = 'ref_id_01'
+ DATE_TRUNC('day', ds) AS metric_time__day
+ , referrer_id AS visit__referrer_id
+ , 1 AS visits
+ FROM ***************************.fct_visits visits_source_src_28000
+ ) subq_19
+ WHERE (
+ metric_time__day BETWEEN '2020-01-01' AND '2020-01-02'
+ ) AND (
+ visit__referrer_id = 'ref_id_01'
+ )
GROUP BY
metric_time__day
, visit__referrer_id
- ) subq_24
+ ) subq_23
FULL OUTER JOIN (
-- Find conversions for user within the range of 7 day
-- Pass Only Elements: ['buys', 'visit__referrer_id', 'metric_time__day']
@@ -56,48 +48,48 @@ FROM (
FROM (
-- Dedupe the fanout with mf_internal_uuid in the conversion data set
SELECT DISTINCT
- FIRST_VALUE(subq_28.visits) OVER (
+ FIRST_VALUE(subq_27.visits) OVER (
PARTITION BY
- subq_31.user
- , subq_31.ds__day
- , subq_31.mf_internal_uuid
- ORDER BY subq_28.ds__day DESC
+ subq_30.user
+ , subq_30.ds__day
+ , subq_30.mf_internal_uuid
+ ORDER BY subq_27.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS visits
- , FIRST_VALUE(subq_28.visit__referrer_id) OVER (
+ , FIRST_VALUE(subq_27.visit__referrer_id) OVER (
PARTITION BY
- subq_31.user
- , subq_31.ds__day
- , subq_31.mf_internal_uuid
- ORDER BY subq_28.ds__day DESC
+ subq_30.user
+ , subq_30.ds__day
+ , subq_30.mf_internal_uuid
+ ORDER BY subq_27.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS visit__referrer_id
- , FIRST_VALUE(subq_28.ds__day) OVER (
+ , FIRST_VALUE(subq_27.ds__day) OVER (
PARTITION BY
- subq_31.user
- , subq_31.ds__day
- , subq_31.mf_internal_uuid
- ORDER BY subq_28.ds__day DESC
+ subq_30.user
+ , subq_30.ds__day
+ , subq_30.mf_internal_uuid
+ ORDER BY subq_27.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS ds__day
- , FIRST_VALUE(subq_28.metric_time__day) OVER (
+ , FIRST_VALUE(subq_27.metric_time__day) OVER (
PARTITION BY
- subq_31.user
- , subq_31.ds__day
- , subq_31.mf_internal_uuid
- ORDER BY subq_28.ds__day DESC
+ subq_30.user
+ , subq_30.ds__day
+ , subq_30.mf_internal_uuid
+ ORDER BY subq_27.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS metric_time__day
- , FIRST_VALUE(subq_28.user) OVER (
+ , FIRST_VALUE(subq_27.user) OVER (
PARTITION BY
- subq_31.user
- , subq_31.ds__day
- , subq_31.mf_internal_uuid
- ORDER BY subq_28.ds__day DESC
+ subq_30.user
+ , subq_30.ds__day
+ , subq_30.mf_internal_uuid
+ ORDER BY subq_27.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS user
- , subq_31.mf_internal_uuid AS mf_internal_uuid
- , subq_31.buys AS buys
+ , subq_30.mf_internal_uuid AS mf_internal_uuid
+ , subq_30.buys AS buys
FROM (
-- Read Elements From Semantic Model 'visits_source'
-- Metric Time Dimension 'ds'
@@ -111,7 +103,7 @@ FROM (
, 1 AS visits
FROM ***************************.fct_visits visits_source_src_28000
WHERE DATE_TRUNC('day', ds) BETWEEN '2020-01-01' AND '2020-01-02'
- ) subq_28
+ ) subq_27
INNER JOIN (
-- Read Elements From Semantic Model 'buys_source'
-- Metric Time Dimension 'ds'
@@ -122,29 +114,29 @@ FROM (
, 1 AS buys
, CONCAT(CAST(RANDOM()*100000000 AS INT)::VARCHAR,CAST(RANDOM()*100000000 AS INT)::VARCHAR) AS mf_internal_uuid
FROM ***************************.fct_buys buys_source_src_28000
- ) subq_31
+ ) subq_30
ON
(
- subq_28.user = subq_31.user
+ subq_27.user = subq_30.user
) AND (
(
- subq_28.ds__day <= subq_31.ds__day
+ subq_27.ds__day <= subq_30.ds__day
) AND (
- subq_28.ds__day > DATEADD(day, -7, subq_31.ds__day)
+ subq_27.ds__day > DATEADD(day, -7, subq_30.ds__day)
)
)
- ) subq_32
+ ) subq_31
GROUP BY
metric_time__day
, visit__referrer_id
- ) subq_35
+ ) subq_34
ON
(
- subq_24.visit__referrer_id = subq_35.visit__referrer_id
+ subq_23.visit__referrer_id = subq_34.visit__referrer_id
) AND (
- subq_24.metric_time__day = subq_35.metric_time__day
+ subq_23.metric_time__day = subq_34.metric_time__day
)
GROUP BY
- COALESCE(subq_24.metric_time__day, subq_35.metric_time__day)
- , COALESCE(subq_24.visit__referrer_id, subq_35.visit__referrer_id)
-) subq_36
+ COALESCE(subq_23.metric_time__day, subq_34.metric_time__day)
+ , COALESCE(subq_23.visit__referrer_id, subq_34.visit__referrer_id)
+) subq_35
diff --git a/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/Snowflake/test_conversion_metric_with_categorical_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/Snowflake/test_conversion_metric_with_categorical_filter__plan0_optimized.sql
index 304c6823ec..556940ffc0 100644
--- a/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/Snowflake/test_conversion_metric_with_categorical_filter__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/Snowflake/test_conversion_metric_with_categorical_filter__plan0_optimized.sql
@@ -6,40 +6,32 @@ SELECT
FROM (
-- Combine Aggregated Outputs
SELECT
- COALESCE(subq_21.metric_time__day, subq_31.metric_time__day) AS metric_time__day
- , COALESCE(subq_21.visit__referrer_id, subq_31.visit__referrer_id) AS visit__referrer_id
- , MAX(subq_21.visits) AS visits
- , MAX(subq_31.buys) AS buys
+ COALESCE(subq_20.metric_time__day, subq_30.metric_time__day) AS metric_time__day
+ , COALESCE(subq_20.visit__referrer_id, subq_30.visit__referrer_id) AS visit__referrer_id
+ , MAX(subq_20.visits) AS visits
+ , MAX(subq_30.buys) AS buys
FROM (
-- Constrain Output with WHERE
+ -- Pass Only Elements: ['visits', 'visit__referrer_id', 'metric_time__day']
-- Aggregate Measures
SELECT
metric_time__day
, visit__referrer_id
, SUM(visits) AS visits
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['visits', 'visit__referrer_id', 'metric_time__day']
+ -- Read Elements From Semantic Model 'visits_source'
+ -- Metric Time Dimension 'ds'
SELECT
- metric_time__day
- , visit__referrer_id
- , visits
- FROM (
- -- Read Elements From Semantic Model 'visits_source'
- -- Metric Time Dimension 'ds'
- SELECT
- DATE_TRUNC('day', ds) AS metric_time__day
- , referrer_id AS visit__referrer_id
- , 1 AS visits
- FROM ***************************.fct_visits visits_source_src_28000
- ) subq_17
- WHERE visit__referrer_id = 'ref_id_01'
- ) subq_19
+ DATE_TRUNC('day', ds) AS metric_time__day
+ , referrer_id AS visit__referrer_id
+ , 1 AS visits
+ FROM ***************************.fct_visits visits_source_src_28000
+ ) subq_17
WHERE visit__referrer_id = 'ref_id_01'
GROUP BY
metric_time__day
, visit__referrer_id
- ) subq_21
+ ) subq_20
FULL OUTER JOIN (
-- Find conversions for user within the range of INF
-- Pass Only Elements: ['buys', 'visit__referrer_id', 'metric_time__day']
@@ -51,48 +43,48 @@ FROM (
FROM (
-- Dedupe the fanout with mf_internal_uuid in the conversion data set
SELECT DISTINCT
- FIRST_VALUE(subq_24.visits) OVER (
+ FIRST_VALUE(subq_23.visits) OVER (
PARTITION BY
- subq_27.user
- , subq_27.ds__day
- , subq_27.mf_internal_uuid
- ORDER BY subq_24.ds__day DESC
+ subq_26.user
+ , subq_26.ds__day
+ , subq_26.mf_internal_uuid
+ ORDER BY subq_23.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS visits
- , FIRST_VALUE(subq_24.visit__referrer_id) OVER (
+ , FIRST_VALUE(subq_23.visit__referrer_id) OVER (
PARTITION BY
- subq_27.user
- , subq_27.ds__day
- , subq_27.mf_internal_uuid
- ORDER BY subq_24.ds__day DESC
+ subq_26.user
+ , subq_26.ds__day
+ , subq_26.mf_internal_uuid
+ ORDER BY subq_23.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS visit__referrer_id
- , FIRST_VALUE(subq_24.ds__day) OVER (
+ , FIRST_VALUE(subq_23.ds__day) OVER (
PARTITION BY
- subq_27.user
- , subq_27.ds__day
- , subq_27.mf_internal_uuid
- ORDER BY subq_24.ds__day DESC
+ subq_26.user
+ , subq_26.ds__day
+ , subq_26.mf_internal_uuid
+ ORDER BY subq_23.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS ds__day
- , FIRST_VALUE(subq_24.metric_time__day) OVER (
+ , FIRST_VALUE(subq_23.metric_time__day) OVER (
PARTITION BY
- subq_27.user
- , subq_27.ds__day
- , subq_27.mf_internal_uuid
- ORDER BY subq_24.ds__day DESC
+ subq_26.user
+ , subq_26.ds__day
+ , subq_26.mf_internal_uuid
+ ORDER BY subq_23.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS metric_time__day
- , FIRST_VALUE(subq_24.user) OVER (
+ , FIRST_VALUE(subq_23.user) OVER (
PARTITION BY
- subq_27.user
- , subq_27.ds__day
- , subq_27.mf_internal_uuid
- ORDER BY subq_24.ds__day DESC
+ subq_26.user
+ , subq_26.ds__day
+ , subq_26.mf_internal_uuid
+ ORDER BY subq_23.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS user
- , subq_27.mf_internal_uuid AS mf_internal_uuid
- , subq_27.buys AS buys
+ , subq_26.mf_internal_uuid AS mf_internal_uuid
+ , subq_26.buys AS buys
FROM (
-- Read Elements From Semantic Model 'visits_source'
-- Metric Time Dimension 'ds'
@@ -104,7 +96,7 @@ FROM (
, referrer_id AS visit__referrer_id
, 1 AS visits
FROM ***************************.fct_visits visits_source_src_28000
- ) subq_24
+ ) subq_23
INNER JOIN (
-- Read Elements From Semantic Model 'buys_source'
-- Metric Time Dimension 'ds'
@@ -115,25 +107,25 @@ FROM (
, 1 AS buys
, UUID_STRING() AS mf_internal_uuid
FROM ***************************.fct_buys buys_source_src_28000
- ) subq_27
+ ) subq_26
ON
(
- subq_24.user = subq_27.user
+ subq_23.user = subq_26.user
) AND (
- (subq_24.ds__day <= subq_27.ds__day)
+ (subq_23.ds__day <= subq_26.ds__day)
)
- ) subq_28
+ ) subq_27
GROUP BY
metric_time__day
, visit__referrer_id
- ) subq_31
+ ) subq_30
ON
(
- subq_21.visit__referrer_id = subq_31.visit__referrer_id
+ subq_20.visit__referrer_id = subq_30.visit__referrer_id
) AND (
- subq_21.metric_time__day = subq_31.metric_time__day
+ subq_20.metric_time__day = subq_30.metric_time__day
)
GROUP BY
- COALESCE(subq_21.metric_time__day, subq_31.metric_time__day)
- , COALESCE(subq_21.visit__referrer_id, subq_31.visit__referrer_id)
-) subq_32
+ COALESCE(subq_20.metric_time__day, subq_30.metric_time__day)
+ , COALESCE(subq_20.visit__referrer_id, subq_30.visit__referrer_id)
+) subq_31
diff --git a/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/Snowflake/test_conversion_metric_with_time_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/Snowflake/test_conversion_metric_with_time_constraint__plan0_optimized.sql
index 568151fca3..72ba35c158 100644
--- a/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/Snowflake/test_conversion_metric_with_time_constraint__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/Snowflake/test_conversion_metric_with_time_constraint__plan0_optimized.sql
@@ -5,41 +5,34 @@ SELECT
FROM (
-- Combine Aggregated Outputs
SELECT
- COALESCE(subq_24.visit__referrer_id, subq_35.visit__referrer_id) AS visit__referrer_id
- , MAX(subq_24.visits) AS visits
- , MAX(subq_35.buys) AS buys
+ COALESCE(subq_23.visit__referrer_id, subq_34.visit__referrer_id) AS visit__referrer_id
+ , MAX(subq_23.visits) AS visits
+ , MAX(subq_34.buys) AS buys
FROM (
-- Constrain Output with WHERE
+ -- Constrain Time Range to [2020-01-01T00:00:00, 2020-01-02T00:00:00]
+ -- Pass Only Elements: ['visits', 'visit__referrer_id']
-- Aggregate Measures
SELECT
visit__referrer_id
, SUM(visits) AS visits
FROM (
- -- Constrain Output with WHERE
- -- Constrain Time Range to [2020-01-01T00:00:00, 2020-01-02T00:00:00]
- -- Pass Only Elements: ['visits', 'visit__referrer_id']
+ -- Read Elements From Semantic Model 'visits_source'
+ -- Metric Time Dimension 'ds'
SELECT
- visit__referrer_id
- , visits
- FROM (
- -- Read Elements From Semantic Model 'visits_source'
- -- Metric Time Dimension 'ds'
- SELECT
- DATE_TRUNC('day', ds) AS metric_time__day
- , referrer_id AS visit__referrer_id
- , 1 AS visits
- FROM ***************************.fct_visits visits_source_src_28000
- ) subq_19
- WHERE (
- metric_time__day BETWEEN '2020-01-01' AND '2020-01-02'
- ) AND (
- visit__referrer_id = 'ref_id_01'
- )
- ) subq_22
- WHERE visit__referrer_id = 'ref_id_01'
+ DATE_TRUNC('day', ds) AS metric_time__day
+ , referrer_id AS visit__referrer_id
+ , 1 AS visits
+ FROM ***************************.fct_visits visits_source_src_28000
+ ) subq_19
+ WHERE (
+ metric_time__day BETWEEN '2020-01-01' AND '2020-01-02'
+ ) AND (
+ visit__referrer_id = 'ref_id_01'
+ )
GROUP BY
visit__referrer_id
- ) subq_24
+ ) subq_23
FULL OUTER JOIN (
-- Find conversions for user within the range of INF
-- Pass Only Elements: ['buys', 'visit__referrer_id']
@@ -50,40 +43,40 @@ FROM (
FROM (
-- Dedupe the fanout with mf_internal_uuid in the conversion data set
SELECT DISTINCT
- FIRST_VALUE(subq_28.visits) OVER (
+ FIRST_VALUE(subq_27.visits) OVER (
PARTITION BY
- subq_31.user
- , subq_31.ds__day
- , subq_31.mf_internal_uuid
- ORDER BY subq_28.ds__day DESC
+ subq_30.user
+ , subq_30.ds__day
+ , subq_30.mf_internal_uuid
+ ORDER BY subq_27.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS visits
- , FIRST_VALUE(subq_28.visit__referrer_id) OVER (
+ , FIRST_VALUE(subq_27.visit__referrer_id) OVER (
PARTITION BY
- subq_31.user
- , subq_31.ds__day
- , subq_31.mf_internal_uuid
- ORDER BY subq_28.ds__day DESC
+ subq_30.user
+ , subq_30.ds__day
+ , subq_30.mf_internal_uuid
+ ORDER BY subq_27.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS visit__referrer_id
- , FIRST_VALUE(subq_28.ds__day) OVER (
+ , FIRST_VALUE(subq_27.ds__day) OVER (
PARTITION BY
- subq_31.user
- , subq_31.ds__day
- , subq_31.mf_internal_uuid
- ORDER BY subq_28.ds__day DESC
+ subq_30.user
+ , subq_30.ds__day
+ , subq_30.mf_internal_uuid
+ ORDER BY subq_27.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS ds__day
- , FIRST_VALUE(subq_28.user) OVER (
+ , FIRST_VALUE(subq_27.user) OVER (
PARTITION BY
- subq_31.user
- , subq_31.ds__day
- , subq_31.mf_internal_uuid
- ORDER BY subq_28.ds__day DESC
+ subq_30.user
+ , subq_30.ds__day
+ , subq_30.mf_internal_uuid
+ ORDER BY subq_27.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS user
- , subq_31.mf_internal_uuid AS mf_internal_uuid
- , subq_31.buys AS buys
+ , subq_30.mf_internal_uuid AS mf_internal_uuid
+ , subq_30.buys AS buys
FROM (
-- Read Elements From Semantic Model 'visits_source'
-- Metric Time Dimension 'ds'
@@ -96,7 +89,7 @@ FROM (
, 1 AS visits
FROM ***************************.fct_visits visits_source_src_28000
WHERE DATE_TRUNC('day', ds) BETWEEN '2020-01-01' AND '2020-01-02'
- ) subq_28
+ ) subq_27
INNER JOIN (
-- Read Elements From Semantic Model 'buys_source'
-- Metric Time Dimension 'ds'
@@ -107,19 +100,19 @@ FROM (
, 1 AS buys
, UUID_STRING() AS mf_internal_uuid
FROM ***************************.fct_buys buys_source_src_28000
- ) subq_31
+ ) subq_30
ON
(
- subq_28.user = subq_31.user
+ subq_27.user = subq_30.user
) AND (
- (subq_28.ds__day <= subq_31.ds__day)
+ (subq_27.ds__day <= subq_30.ds__day)
)
- ) subq_32
+ ) subq_31
GROUP BY
visit__referrer_id
- ) subq_35
+ ) subq_34
ON
- subq_24.visit__referrer_id = subq_35.visit__referrer_id
+ subq_23.visit__referrer_id = subq_34.visit__referrer_id
GROUP BY
- COALESCE(subq_24.visit__referrer_id, subq_35.visit__referrer_id)
-) subq_36
+ COALESCE(subq_23.visit__referrer_id, subq_34.visit__referrer_id)
+) subq_35
diff --git a/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/Snowflake/test_conversion_metric_with_window_and_time_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/Snowflake/test_conversion_metric_with_window_and_time_constraint__plan0_optimized.sql
index 1f276fddb9..1932d15f0a 100644
--- a/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/Snowflake/test_conversion_metric_with_window_and_time_constraint__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/Snowflake/test_conversion_metric_with_window_and_time_constraint__plan0_optimized.sql
@@ -6,45 +6,37 @@ SELECT
FROM (
-- Combine Aggregated Outputs
SELECT
- COALESCE(subq_24.metric_time__day, subq_35.metric_time__day) AS metric_time__day
- , COALESCE(subq_24.visit__referrer_id, subq_35.visit__referrer_id) AS visit__referrer_id
- , MAX(subq_24.visits) AS visits
- , MAX(subq_35.buys) AS buys
+ COALESCE(subq_23.metric_time__day, subq_34.metric_time__day) AS metric_time__day
+ , COALESCE(subq_23.visit__referrer_id, subq_34.visit__referrer_id) AS visit__referrer_id
+ , MAX(subq_23.visits) AS visits
+ , MAX(subq_34.buys) AS buys
FROM (
-- Constrain Output with WHERE
+ -- Constrain Time Range to [2020-01-01T00:00:00, 2020-01-02T00:00:00]
+ -- Pass Only Elements: ['visits', 'visit__referrer_id', 'metric_time__day']
-- Aggregate Measures
SELECT
metric_time__day
, visit__referrer_id
, SUM(visits) AS visits
FROM (
- -- Constrain Output with WHERE
- -- Constrain Time Range to [2020-01-01T00:00:00, 2020-01-02T00:00:00]
- -- Pass Only Elements: ['visits', 'visit__referrer_id', 'metric_time__day']
+ -- Read Elements From Semantic Model 'visits_source'
+ -- Metric Time Dimension 'ds'
SELECT
- metric_time__day
- , visit__referrer_id
- , visits
- FROM (
- -- Read Elements From Semantic Model 'visits_source'
- -- Metric Time Dimension 'ds'
- SELECT
- DATE_TRUNC('day', ds) AS metric_time__day
- , referrer_id AS visit__referrer_id
- , 1 AS visits
- FROM ***************************.fct_visits visits_source_src_28000
- ) subq_19
- WHERE (
- metric_time__day BETWEEN '2020-01-01' AND '2020-01-02'
- ) AND (
- visit__referrer_id = 'ref_id_01'
- )
- ) subq_22
- WHERE visit__referrer_id = 'ref_id_01'
+ DATE_TRUNC('day', ds) AS metric_time__day
+ , referrer_id AS visit__referrer_id
+ , 1 AS visits
+ FROM ***************************.fct_visits visits_source_src_28000
+ ) subq_19
+ WHERE (
+ metric_time__day BETWEEN '2020-01-01' AND '2020-01-02'
+ ) AND (
+ visit__referrer_id = 'ref_id_01'
+ )
GROUP BY
metric_time__day
, visit__referrer_id
- ) subq_24
+ ) subq_23
FULL OUTER JOIN (
-- Find conversions for user within the range of 7 day
-- Pass Only Elements: ['buys', 'visit__referrer_id', 'metric_time__day']
@@ -56,48 +48,48 @@ FROM (
FROM (
-- Dedupe the fanout with mf_internal_uuid in the conversion data set
SELECT DISTINCT
- FIRST_VALUE(subq_28.visits) OVER (
+ FIRST_VALUE(subq_27.visits) OVER (
PARTITION BY
- subq_31.user
- , subq_31.ds__day
- , subq_31.mf_internal_uuid
- ORDER BY subq_28.ds__day DESC
+ subq_30.user
+ , subq_30.ds__day
+ , subq_30.mf_internal_uuid
+ ORDER BY subq_27.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS visits
- , FIRST_VALUE(subq_28.visit__referrer_id) OVER (
+ , FIRST_VALUE(subq_27.visit__referrer_id) OVER (
PARTITION BY
- subq_31.user
- , subq_31.ds__day
- , subq_31.mf_internal_uuid
- ORDER BY subq_28.ds__day DESC
+ subq_30.user
+ , subq_30.ds__day
+ , subq_30.mf_internal_uuid
+ ORDER BY subq_27.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS visit__referrer_id
- , FIRST_VALUE(subq_28.ds__day) OVER (
+ , FIRST_VALUE(subq_27.ds__day) OVER (
PARTITION BY
- subq_31.user
- , subq_31.ds__day
- , subq_31.mf_internal_uuid
- ORDER BY subq_28.ds__day DESC
+ subq_30.user
+ , subq_30.ds__day
+ , subq_30.mf_internal_uuid
+ ORDER BY subq_27.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS ds__day
- , FIRST_VALUE(subq_28.metric_time__day) OVER (
+ , FIRST_VALUE(subq_27.metric_time__day) OVER (
PARTITION BY
- subq_31.user
- , subq_31.ds__day
- , subq_31.mf_internal_uuid
- ORDER BY subq_28.ds__day DESC
+ subq_30.user
+ , subq_30.ds__day
+ , subq_30.mf_internal_uuid
+ ORDER BY subq_27.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS metric_time__day
- , FIRST_VALUE(subq_28.user) OVER (
+ , FIRST_VALUE(subq_27.user) OVER (
PARTITION BY
- subq_31.user
- , subq_31.ds__day
- , subq_31.mf_internal_uuid
- ORDER BY subq_28.ds__day DESC
+ subq_30.user
+ , subq_30.ds__day
+ , subq_30.mf_internal_uuid
+ ORDER BY subq_27.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS user
- , subq_31.mf_internal_uuid AS mf_internal_uuid
- , subq_31.buys AS buys
+ , subq_30.mf_internal_uuid AS mf_internal_uuid
+ , subq_30.buys AS buys
FROM (
-- Read Elements From Semantic Model 'visits_source'
-- Metric Time Dimension 'ds'
@@ -111,7 +103,7 @@ FROM (
, 1 AS visits
FROM ***************************.fct_visits visits_source_src_28000
WHERE DATE_TRUNC('day', ds) BETWEEN '2020-01-01' AND '2020-01-02'
- ) subq_28
+ ) subq_27
INNER JOIN (
-- Read Elements From Semantic Model 'buys_source'
-- Metric Time Dimension 'ds'
@@ -122,29 +114,29 @@ FROM (
, 1 AS buys
, UUID_STRING() AS mf_internal_uuid
FROM ***************************.fct_buys buys_source_src_28000
- ) subq_31
+ ) subq_30
ON
(
- subq_28.user = subq_31.user
+ subq_27.user = subq_30.user
) AND (
(
- subq_28.ds__day <= subq_31.ds__day
+ subq_27.ds__day <= subq_30.ds__day
) AND (
- subq_28.ds__day > DATEADD(day, -7, subq_31.ds__day)
+ subq_27.ds__day > DATEADD(day, -7, subq_30.ds__day)
)
)
- ) subq_32
+ ) subq_31
GROUP BY
metric_time__day
, visit__referrer_id
- ) subq_35
+ ) subq_34
ON
(
- subq_24.visit__referrer_id = subq_35.visit__referrer_id
+ subq_23.visit__referrer_id = subq_34.visit__referrer_id
) AND (
- subq_24.metric_time__day = subq_35.metric_time__day
+ subq_23.metric_time__day = subq_34.metric_time__day
)
GROUP BY
- COALESCE(subq_24.metric_time__day, subq_35.metric_time__day)
- , COALESCE(subq_24.visit__referrer_id, subq_35.visit__referrer_id)
-) subq_36
+ COALESCE(subq_23.metric_time__day, subq_34.metric_time__day)
+ , COALESCE(subq_23.visit__referrer_id, subq_34.visit__referrer_id)
+) subq_35
diff --git a/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/Trino/test_conversion_metric_with_categorical_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/Trino/test_conversion_metric_with_categorical_filter__plan0_optimized.sql
index f62e77e70f..e5746c490a 100644
--- a/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/Trino/test_conversion_metric_with_categorical_filter__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/Trino/test_conversion_metric_with_categorical_filter__plan0_optimized.sql
@@ -6,40 +6,32 @@ SELECT
FROM (
-- Combine Aggregated Outputs
SELECT
- COALESCE(subq_21.metric_time__day, subq_31.metric_time__day) AS metric_time__day
- , COALESCE(subq_21.visit__referrer_id, subq_31.visit__referrer_id) AS visit__referrer_id
- , MAX(subq_21.visits) AS visits
- , MAX(subq_31.buys) AS buys
+ COALESCE(subq_20.metric_time__day, subq_30.metric_time__day) AS metric_time__day
+ , COALESCE(subq_20.visit__referrer_id, subq_30.visit__referrer_id) AS visit__referrer_id
+ , MAX(subq_20.visits) AS visits
+ , MAX(subq_30.buys) AS buys
FROM (
-- Constrain Output with WHERE
+ -- Pass Only Elements: ['visits', 'visit__referrer_id', 'metric_time__day']
-- Aggregate Measures
SELECT
metric_time__day
, visit__referrer_id
, SUM(visits) AS visits
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['visits', 'visit__referrer_id', 'metric_time__day']
+ -- Read Elements From Semantic Model 'visits_source'
+ -- Metric Time Dimension 'ds'
SELECT
- metric_time__day
- , visit__referrer_id
- , visits
- FROM (
- -- Read Elements From Semantic Model 'visits_source'
- -- Metric Time Dimension 'ds'
- SELECT
- DATE_TRUNC('day', ds) AS metric_time__day
- , referrer_id AS visit__referrer_id
- , 1 AS visits
- FROM ***************************.fct_visits visits_source_src_28000
- ) subq_17
- WHERE visit__referrer_id = 'ref_id_01'
- ) subq_19
+ DATE_TRUNC('day', ds) AS metric_time__day
+ , referrer_id AS visit__referrer_id
+ , 1 AS visits
+ FROM ***************************.fct_visits visits_source_src_28000
+ ) subq_17
WHERE visit__referrer_id = 'ref_id_01'
GROUP BY
metric_time__day
, visit__referrer_id
- ) subq_21
+ ) subq_20
FULL OUTER JOIN (
-- Find conversions for user within the range of INF
-- Pass Only Elements: ['buys', 'visit__referrer_id', 'metric_time__day']
@@ -51,48 +43,48 @@ FROM (
FROM (
-- Dedupe the fanout with mf_internal_uuid in the conversion data set
SELECT DISTINCT
- FIRST_VALUE(subq_24.visits) OVER (
+ FIRST_VALUE(subq_23.visits) OVER (
PARTITION BY
- subq_27.user
- , subq_27.ds__day
- , subq_27.mf_internal_uuid
- ORDER BY subq_24.ds__day DESC
+ subq_26.user
+ , subq_26.ds__day
+ , subq_26.mf_internal_uuid
+ ORDER BY subq_23.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS visits
- , FIRST_VALUE(subq_24.visit__referrer_id) OVER (
+ , FIRST_VALUE(subq_23.visit__referrer_id) OVER (
PARTITION BY
- subq_27.user
- , subq_27.ds__day
- , subq_27.mf_internal_uuid
- ORDER BY subq_24.ds__day DESC
+ subq_26.user
+ , subq_26.ds__day
+ , subq_26.mf_internal_uuid
+ ORDER BY subq_23.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS visit__referrer_id
- , FIRST_VALUE(subq_24.ds__day) OVER (
+ , FIRST_VALUE(subq_23.ds__day) OVER (
PARTITION BY
- subq_27.user
- , subq_27.ds__day
- , subq_27.mf_internal_uuid
- ORDER BY subq_24.ds__day DESC
+ subq_26.user
+ , subq_26.ds__day
+ , subq_26.mf_internal_uuid
+ ORDER BY subq_23.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS ds__day
- , FIRST_VALUE(subq_24.metric_time__day) OVER (
+ , FIRST_VALUE(subq_23.metric_time__day) OVER (
PARTITION BY
- subq_27.user
- , subq_27.ds__day
- , subq_27.mf_internal_uuid
- ORDER BY subq_24.ds__day DESC
+ subq_26.user
+ , subq_26.ds__day
+ , subq_26.mf_internal_uuid
+ ORDER BY subq_23.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS metric_time__day
- , FIRST_VALUE(subq_24.user) OVER (
+ , FIRST_VALUE(subq_23.user) OVER (
PARTITION BY
- subq_27.user
- , subq_27.ds__day
- , subq_27.mf_internal_uuid
- ORDER BY subq_24.ds__day DESC
+ subq_26.user
+ , subq_26.ds__day
+ , subq_26.mf_internal_uuid
+ ORDER BY subq_23.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS user
- , subq_27.mf_internal_uuid AS mf_internal_uuid
- , subq_27.buys AS buys
+ , subq_26.mf_internal_uuid AS mf_internal_uuid
+ , subq_26.buys AS buys
FROM (
-- Read Elements From Semantic Model 'visits_source'
-- Metric Time Dimension 'ds'
@@ -104,7 +96,7 @@ FROM (
, referrer_id AS visit__referrer_id
, 1 AS visits
FROM ***************************.fct_visits visits_source_src_28000
- ) subq_24
+ ) subq_23
INNER JOIN (
-- Read Elements From Semantic Model 'buys_source'
-- Metric Time Dimension 'ds'
@@ -115,25 +107,25 @@ FROM (
, 1 AS buys
, uuid() AS mf_internal_uuid
FROM ***************************.fct_buys buys_source_src_28000
- ) subq_27
+ ) subq_26
ON
(
- subq_24.user = subq_27.user
+ subq_23.user = subq_26.user
) AND (
- (subq_24.ds__day <= subq_27.ds__day)
+ (subq_23.ds__day <= subq_26.ds__day)
)
- ) subq_28
+ ) subq_27
GROUP BY
metric_time__day
, visit__referrer_id
- ) subq_31
+ ) subq_30
ON
(
- subq_21.visit__referrer_id = subq_31.visit__referrer_id
+ subq_20.visit__referrer_id = subq_30.visit__referrer_id
) AND (
- subq_21.metric_time__day = subq_31.metric_time__day
+ subq_20.metric_time__day = subq_30.metric_time__day
)
GROUP BY
- COALESCE(subq_21.metric_time__day, subq_31.metric_time__day)
- , COALESCE(subq_21.visit__referrer_id, subq_31.visit__referrer_id)
-) subq_32
+ COALESCE(subq_20.metric_time__day, subq_30.metric_time__day)
+ , COALESCE(subq_20.visit__referrer_id, subq_30.visit__referrer_id)
+) subq_31
diff --git a/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/Trino/test_conversion_metric_with_time_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/Trino/test_conversion_metric_with_time_constraint__plan0_optimized.sql
index 1bddfac4f2..0702a5a11a 100644
--- a/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/Trino/test_conversion_metric_with_time_constraint__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/Trino/test_conversion_metric_with_time_constraint__plan0_optimized.sql
@@ -5,41 +5,34 @@ SELECT
FROM (
-- Combine Aggregated Outputs
SELECT
- COALESCE(subq_24.visit__referrer_id, subq_35.visit__referrer_id) AS visit__referrer_id
- , MAX(subq_24.visits) AS visits
- , MAX(subq_35.buys) AS buys
+ COALESCE(subq_23.visit__referrer_id, subq_34.visit__referrer_id) AS visit__referrer_id
+ , MAX(subq_23.visits) AS visits
+ , MAX(subq_34.buys) AS buys
FROM (
-- Constrain Output with WHERE
+ -- Constrain Time Range to [2020-01-01T00:00:00, 2020-01-02T00:00:00]
+ -- Pass Only Elements: ['visits', 'visit__referrer_id']
-- Aggregate Measures
SELECT
visit__referrer_id
, SUM(visits) AS visits
FROM (
- -- Constrain Output with WHERE
- -- Constrain Time Range to [2020-01-01T00:00:00, 2020-01-02T00:00:00]
- -- Pass Only Elements: ['visits', 'visit__referrer_id']
+ -- Read Elements From Semantic Model 'visits_source'
+ -- Metric Time Dimension 'ds'
SELECT
- visit__referrer_id
- , visits
- FROM (
- -- Read Elements From Semantic Model 'visits_source'
- -- Metric Time Dimension 'ds'
- SELECT
- DATE_TRUNC('day', ds) AS metric_time__day
- , referrer_id AS visit__referrer_id
- , 1 AS visits
- FROM ***************************.fct_visits visits_source_src_28000
- ) subq_19
- WHERE (
- metric_time__day BETWEEN timestamp '2020-01-01' AND timestamp '2020-01-02'
- ) AND (
- visit__referrer_id = 'ref_id_01'
- )
- ) subq_22
- WHERE visit__referrer_id = 'ref_id_01'
+ DATE_TRUNC('day', ds) AS metric_time__day
+ , referrer_id AS visit__referrer_id
+ , 1 AS visits
+ FROM ***************************.fct_visits visits_source_src_28000
+ ) subq_19
+ WHERE (
+ metric_time__day BETWEEN timestamp '2020-01-01' AND timestamp '2020-01-02'
+ ) AND (
+ visit__referrer_id = 'ref_id_01'
+ )
GROUP BY
visit__referrer_id
- ) subq_24
+ ) subq_23
FULL OUTER JOIN (
-- Find conversions for user within the range of INF
-- Pass Only Elements: ['buys', 'visit__referrer_id']
@@ -50,40 +43,40 @@ FROM (
FROM (
-- Dedupe the fanout with mf_internal_uuid in the conversion data set
SELECT DISTINCT
- FIRST_VALUE(subq_28.visits) OVER (
+ FIRST_VALUE(subq_27.visits) OVER (
PARTITION BY
- subq_31.user
- , subq_31.ds__day
- , subq_31.mf_internal_uuid
- ORDER BY subq_28.ds__day DESC
+ subq_30.user
+ , subq_30.ds__day
+ , subq_30.mf_internal_uuid
+ ORDER BY subq_27.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS visits
- , FIRST_VALUE(subq_28.visit__referrer_id) OVER (
+ , FIRST_VALUE(subq_27.visit__referrer_id) OVER (
PARTITION BY
- subq_31.user
- , subq_31.ds__day
- , subq_31.mf_internal_uuid
- ORDER BY subq_28.ds__day DESC
+ subq_30.user
+ , subq_30.ds__day
+ , subq_30.mf_internal_uuid
+ ORDER BY subq_27.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS visit__referrer_id
- , FIRST_VALUE(subq_28.ds__day) OVER (
+ , FIRST_VALUE(subq_27.ds__day) OVER (
PARTITION BY
- subq_31.user
- , subq_31.ds__day
- , subq_31.mf_internal_uuid
- ORDER BY subq_28.ds__day DESC
+ subq_30.user
+ , subq_30.ds__day
+ , subq_30.mf_internal_uuid
+ ORDER BY subq_27.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS ds__day
- , FIRST_VALUE(subq_28.user) OVER (
+ , FIRST_VALUE(subq_27.user) OVER (
PARTITION BY
- subq_31.user
- , subq_31.ds__day
- , subq_31.mf_internal_uuid
- ORDER BY subq_28.ds__day DESC
+ subq_30.user
+ , subq_30.ds__day
+ , subq_30.mf_internal_uuid
+ ORDER BY subq_27.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS user
- , subq_31.mf_internal_uuid AS mf_internal_uuid
- , subq_31.buys AS buys
+ , subq_30.mf_internal_uuid AS mf_internal_uuid
+ , subq_30.buys AS buys
FROM (
-- Read Elements From Semantic Model 'visits_source'
-- Metric Time Dimension 'ds'
@@ -96,7 +89,7 @@ FROM (
, 1 AS visits
FROM ***************************.fct_visits visits_source_src_28000
WHERE DATE_TRUNC('day', ds) BETWEEN timestamp '2020-01-01' AND timestamp '2020-01-02'
- ) subq_28
+ ) subq_27
INNER JOIN (
-- Read Elements From Semantic Model 'buys_source'
-- Metric Time Dimension 'ds'
@@ -107,19 +100,19 @@ FROM (
, 1 AS buys
, uuid() AS mf_internal_uuid
FROM ***************************.fct_buys buys_source_src_28000
- ) subq_31
+ ) subq_30
ON
(
- subq_28.user = subq_31.user
+ subq_27.user = subq_30.user
) AND (
- (subq_28.ds__day <= subq_31.ds__day)
+ (subq_27.ds__day <= subq_30.ds__day)
)
- ) subq_32
+ ) subq_31
GROUP BY
visit__referrer_id
- ) subq_35
+ ) subq_34
ON
- subq_24.visit__referrer_id = subq_35.visit__referrer_id
+ subq_23.visit__referrer_id = subq_34.visit__referrer_id
GROUP BY
- COALESCE(subq_24.visit__referrer_id, subq_35.visit__referrer_id)
-) subq_36
+ COALESCE(subq_23.visit__referrer_id, subq_34.visit__referrer_id)
+) subq_35
diff --git a/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/Trino/test_conversion_metric_with_window_and_time_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/Trino/test_conversion_metric_with_window_and_time_constraint__plan0_optimized.sql
index 18e473d1e2..d1f1fbe641 100644
--- a/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/Trino/test_conversion_metric_with_window_and_time_constraint__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_conversion_metric_rendering.py/SqlQueryPlan/Trino/test_conversion_metric_with_window_and_time_constraint__plan0_optimized.sql
@@ -6,45 +6,37 @@ SELECT
FROM (
-- Combine Aggregated Outputs
SELECT
- COALESCE(subq_24.metric_time__day, subq_35.metric_time__day) AS metric_time__day
- , COALESCE(subq_24.visit__referrer_id, subq_35.visit__referrer_id) AS visit__referrer_id
- , MAX(subq_24.visits) AS visits
- , MAX(subq_35.buys) AS buys
+ COALESCE(subq_23.metric_time__day, subq_34.metric_time__day) AS metric_time__day
+ , COALESCE(subq_23.visit__referrer_id, subq_34.visit__referrer_id) AS visit__referrer_id
+ , MAX(subq_23.visits) AS visits
+ , MAX(subq_34.buys) AS buys
FROM (
-- Constrain Output with WHERE
+ -- Constrain Time Range to [2020-01-01T00:00:00, 2020-01-02T00:00:00]
+ -- Pass Only Elements: ['visits', 'visit__referrer_id', 'metric_time__day']
-- Aggregate Measures
SELECT
metric_time__day
, visit__referrer_id
, SUM(visits) AS visits
FROM (
- -- Constrain Output with WHERE
- -- Constrain Time Range to [2020-01-01T00:00:00, 2020-01-02T00:00:00]
- -- Pass Only Elements: ['visits', 'visit__referrer_id', 'metric_time__day']
+ -- Read Elements From Semantic Model 'visits_source'
+ -- Metric Time Dimension 'ds'
SELECT
- metric_time__day
- , visit__referrer_id
- , visits
- FROM (
- -- Read Elements From Semantic Model 'visits_source'
- -- Metric Time Dimension 'ds'
- SELECT
- DATE_TRUNC('day', ds) AS metric_time__day
- , referrer_id AS visit__referrer_id
- , 1 AS visits
- FROM ***************************.fct_visits visits_source_src_28000
- ) subq_19
- WHERE (
- metric_time__day BETWEEN timestamp '2020-01-01' AND timestamp '2020-01-02'
- ) AND (
- visit__referrer_id = 'ref_id_01'
- )
- ) subq_22
- WHERE visit__referrer_id = 'ref_id_01'
+ DATE_TRUNC('day', ds) AS metric_time__day
+ , referrer_id AS visit__referrer_id
+ , 1 AS visits
+ FROM ***************************.fct_visits visits_source_src_28000
+ ) subq_19
+ WHERE (
+ metric_time__day BETWEEN timestamp '2020-01-01' AND timestamp '2020-01-02'
+ ) AND (
+ visit__referrer_id = 'ref_id_01'
+ )
GROUP BY
metric_time__day
, visit__referrer_id
- ) subq_24
+ ) subq_23
FULL OUTER JOIN (
-- Find conversions for user within the range of 7 day
-- Pass Only Elements: ['buys', 'visit__referrer_id', 'metric_time__day']
@@ -56,48 +48,48 @@ FROM (
FROM (
-- Dedupe the fanout with mf_internal_uuid in the conversion data set
SELECT DISTINCT
- FIRST_VALUE(subq_28.visits) OVER (
+ FIRST_VALUE(subq_27.visits) OVER (
PARTITION BY
- subq_31.user
- , subq_31.ds__day
- , subq_31.mf_internal_uuid
- ORDER BY subq_28.ds__day DESC
+ subq_30.user
+ , subq_30.ds__day
+ , subq_30.mf_internal_uuid
+ ORDER BY subq_27.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS visits
- , FIRST_VALUE(subq_28.visit__referrer_id) OVER (
+ , FIRST_VALUE(subq_27.visit__referrer_id) OVER (
PARTITION BY
- subq_31.user
- , subq_31.ds__day
- , subq_31.mf_internal_uuid
- ORDER BY subq_28.ds__day DESC
+ subq_30.user
+ , subq_30.ds__day
+ , subq_30.mf_internal_uuid
+ ORDER BY subq_27.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS visit__referrer_id
- , FIRST_VALUE(subq_28.ds__day) OVER (
+ , FIRST_VALUE(subq_27.ds__day) OVER (
PARTITION BY
- subq_31.user
- , subq_31.ds__day
- , subq_31.mf_internal_uuid
- ORDER BY subq_28.ds__day DESC
+ subq_30.user
+ , subq_30.ds__day
+ , subq_30.mf_internal_uuid
+ ORDER BY subq_27.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS ds__day
- , FIRST_VALUE(subq_28.metric_time__day) OVER (
+ , FIRST_VALUE(subq_27.metric_time__day) OVER (
PARTITION BY
- subq_31.user
- , subq_31.ds__day
- , subq_31.mf_internal_uuid
- ORDER BY subq_28.ds__day DESC
+ subq_30.user
+ , subq_30.ds__day
+ , subq_30.mf_internal_uuid
+ ORDER BY subq_27.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS metric_time__day
- , FIRST_VALUE(subq_28.user) OVER (
+ , FIRST_VALUE(subq_27.user) OVER (
PARTITION BY
- subq_31.user
- , subq_31.ds__day
- , subq_31.mf_internal_uuid
- ORDER BY subq_28.ds__day DESC
+ subq_30.user
+ , subq_30.ds__day
+ , subq_30.mf_internal_uuid
+ ORDER BY subq_27.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS user
- , subq_31.mf_internal_uuid AS mf_internal_uuid
- , subq_31.buys AS buys
+ , subq_30.mf_internal_uuid AS mf_internal_uuid
+ , subq_30.buys AS buys
FROM (
-- Read Elements From Semantic Model 'visits_source'
-- Metric Time Dimension 'ds'
@@ -111,7 +103,7 @@ FROM (
, 1 AS visits
FROM ***************************.fct_visits visits_source_src_28000
WHERE DATE_TRUNC('day', ds) BETWEEN timestamp '2020-01-01' AND timestamp '2020-01-02'
- ) subq_28
+ ) subq_27
INNER JOIN (
-- Read Elements From Semantic Model 'buys_source'
-- Metric Time Dimension 'ds'
@@ -122,29 +114,29 @@ FROM (
, 1 AS buys
, uuid() AS mf_internal_uuid
FROM ***************************.fct_buys buys_source_src_28000
- ) subq_31
+ ) subq_30
ON
(
- subq_28.user = subq_31.user
+ subq_27.user = subq_30.user
) AND (
(
- subq_28.ds__day <= subq_31.ds__day
+ subq_27.ds__day <= subq_30.ds__day
) AND (
- subq_28.ds__day > DATE_ADD('day', -7, subq_31.ds__day)
+ subq_27.ds__day > DATE_ADD('day', -7, subq_30.ds__day)
)
)
- ) subq_32
+ ) subq_31
GROUP BY
metric_time__day
, visit__referrer_id
- ) subq_35
+ ) subq_34
ON
(
- subq_24.visit__referrer_id = subq_35.visit__referrer_id
+ subq_23.visit__referrer_id = subq_34.visit__referrer_id
) AND (
- subq_24.metric_time__day = subq_35.metric_time__day
+ subq_23.metric_time__day = subq_34.metric_time__day
)
GROUP BY
- COALESCE(subq_24.metric_time__day, subq_35.metric_time__day)
- , COALESCE(subq_24.visit__referrer_id, subq_35.visit__referrer_id)
-) subq_36
+ COALESCE(subq_23.metric_time__day, subq_34.metric_time__day)
+ , COALESCE(subq_23.visit__referrer_id, subq_34.visit__referrer_id)
+) subq_35
diff --git a/tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_join_to_time_spine_with_filters__dfp_0.xml b/tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_join_to_time_spine_with_filters__dfp_0.xml
index 21371744ac..d358d42813 100644
--- a/tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_join_to_time_spine_with_filters__dfp_0.xml
+++ b/tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_join_to_time_spine_with_filters__dfp_0.xml
@@ -64,6 +64,7 @@
+
diff --git a/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_filters__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_filters__plan0_optimized.sql
index d436e1b814..1adb0f4733 100644
--- a/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_filters__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_filters__plan0_optimized.sql
@@ -9,8 +9,8 @@ FROM (
-- Combine Aggregated Outputs
SELECT
MAX(subq_45.average_booking_value) AS average_booking_value
- , MAX(subq_58.bookings) AS bookings
- , MAX(subq_66.booking_value) AS booking_value
+ , MAX(subq_57.bookings) AS bookings
+ , MAX(subq_64.booking_value) AS booking_value
FROM (
-- Constrain Output with WHERE
-- Pass Only Elements: ['average_booking_value',]
@@ -22,15 +22,13 @@ FROM (
-- Join Standard Outputs
-- Pass Only Elements: ['average_booking_value', 'listing__is_lux_latest', 'booking__is_instant']
SELECT
- subq_36.booking__is_instant AS booking__is_instant
- , listings_latest_src_28000.is_lux AS listing__is_lux_latest
+ listings_latest_src_28000.is_lux AS listing__is_lux_latest
, subq_36.average_booking_value AS average_booking_value
FROM (
-- Constrain Output with WHERE
-- Pass Only Elements: ['average_booking_value', 'booking__is_instant', 'listing']
SELECT
listing
- , booking__is_instant
, average_booking_value
FROM (
-- Read Elements From Semantic Model 'bookings_source'
@@ -48,71 +46,55 @@ FROM (
ON
subq_36.listing = listings_latest_src_28000.listing_id
) subq_41
- WHERE (listing__is_lux_latest) AND (booking__is_instant)
+ WHERE listing__is_lux_latest
) subq_45
CROSS JOIN (
- -- Constrain Output with WHERE
+ -- Join Standard Outputs
+ -- Pass Only Elements: ['bookings', 'listing__is_lux_latest', 'booking__is_instant']
-- Pass Only Elements: ['bookings',]
-- Aggregate Measures
-- Compute Metrics via Expressions
SELECT
- SUM(bookings) AS bookings
+ SUM(subq_49.bookings) AS bookings
FROM (
- -- Join Standard Outputs
- -- Pass Only Elements: ['bookings', 'listing__is_lux_latest', 'booking__is_instant']
+ -- Constrain Output with WHERE
+ -- Pass Only Elements: ['bookings', 'booking__is_instant', 'listing']
SELECT
- subq_49.booking__is_instant AS booking__is_instant
- , listings_latest_src_28000.is_lux AS listing__is_lux_latest
- , subq_49.bookings AS bookings
+ listing
+ , bookings
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['bookings', 'booking__is_instant', 'listing']
+ -- Read Elements From Semantic Model 'bookings_source'
+ -- Metric Time Dimension 'ds'
SELECT
- listing
- , booking__is_instant
- , bookings
- FROM (
- -- Read Elements From Semantic Model 'bookings_source'
- -- Metric Time Dimension 'ds'
- SELECT
- listing_id AS listing
- , is_instant AS booking__is_instant
- , 1 AS bookings
- FROM ***************************.fct_bookings bookings_source_src_28000
- ) subq_47
- WHERE booking__is_instant
- ) subq_49
- LEFT OUTER JOIN
- ***************************.dim_listings_latest listings_latest_src_28000
- ON
- subq_49.listing = listings_latest_src_28000.listing_id
- ) subq_54
- WHERE (listing__is_lux_latest) AND (booking__is_instant)
- ) subq_58
+ listing_id AS listing
+ , is_instant AS booking__is_instant
+ , 1 AS bookings
+ FROM ***************************.fct_bookings bookings_source_src_28000
+ ) subq_47
+ WHERE booking__is_instant
+ ) subq_49
+ LEFT OUTER JOIN
+ ***************************.dim_listings_latest listings_latest_src_28000
+ ON
+ subq_49.listing = listings_latest_src_28000.listing_id
+ ) subq_57
CROSS JOIN (
-- Constrain Output with WHERE
+ -- Pass Only Elements: ['booking_value', 'booking__is_instant']
-- Pass Only Elements: ['booking_value',]
-- Aggregate Measures
-- Compute Metrics via Expressions
SELECT
SUM(booking_value) AS booking_value
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['booking_value', 'booking__is_instant']
+ -- Read Elements From Semantic Model 'bookings_source'
+ -- Metric Time Dimension 'ds'
SELECT
- booking__is_instant
+ is_instant AS booking__is_instant
, booking_value
- FROM (
- -- Read Elements From Semantic Model 'bookings_source'
- -- Metric Time Dimension 'ds'
- SELECT
- is_instant AS booking__is_instant
- , booking_value
- FROM ***************************.fct_bookings bookings_source_src_28000
- ) subq_60
- WHERE booking__is_instant
- ) subq_62
+ FROM ***************************.fct_bookings bookings_source_src_28000
+ ) subq_59
WHERE booking__is_instant
- ) subq_66
- ) subq_67
-) subq_68
+ ) subq_64
+ ) subq_65
+) subq_66
diff --git a/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_filters__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_filters__plan0_optimized.sql
index d436e1b814..1adb0f4733 100644
--- a/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_filters__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_filters__plan0_optimized.sql
@@ -9,8 +9,8 @@ FROM (
-- Combine Aggregated Outputs
SELECT
MAX(subq_45.average_booking_value) AS average_booking_value
- , MAX(subq_58.bookings) AS bookings
- , MAX(subq_66.booking_value) AS booking_value
+ , MAX(subq_57.bookings) AS bookings
+ , MAX(subq_64.booking_value) AS booking_value
FROM (
-- Constrain Output with WHERE
-- Pass Only Elements: ['average_booking_value',]
@@ -22,15 +22,13 @@ FROM (
-- Join Standard Outputs
-- Pass Only Elements: ['average_booking_value', 'listing__is_lux_latest', 'booking__is_instant']
SELECT
- subq_36.booking__is_instant AS booking__is_instant
- , listings_latest_src_28000.is_lux AS listing__is_lux_latest
+ listings_latest_src_28000.is_lux AS listing__is_lux_latest
, subq_36.average_booking_value AS average_booking_value
FROM (
-- Constrain Output with WHERE
-- Pass Only Elements: ['average_booking_value', 'booking__is_instant', 'listing']
SELECT
listing
- , booking__is_instant
, average_booking_value
FROM (
-- Read Elements From Semantic Model 'bookings_source'
@@ -48,71 +46,55 @@ FROM (
ON
subq_36.listing = listings_latest_src_28000.listing_id
) subq_41
- WHERE (listing__is_lux_latest) AND (booking__is_instant)
+ WHERE listing__is_lux_latest
) subq_45
CROSS JOIN (
- -- Constrain Output with WHERE
+ -- Join Standard Outputs
+ -- Pass Only Elements: ['bookings', 'listing__is_lux_latest', 'booking__is_instant']
-- Pass Only Elements: ['bookings',]
-- Aggregate Measures
-- Compute Metrics via Expressions
SELECT
- SUM(bookings) AS bookings
+ SUM(subq_49.bookings) AS bookings
FROM (
- -- Join Standard Outputs
- -- Pass Only Elements: ['bookings', 'listing__is_lux_latest', 'booking__is_instant']
+ -- Constrain Output with WHERE
+ -- Pass Only Elements: ['bookings', 'booking__is_instant', 'listing']
SELECT
- subq_49.booking__is_instant AS booking__is_instant
- , listings_latest_src_28000.is_lux AS listing__is_lux_latest
- , subq_49.bookings AS bookings
+ listing
+ , bookings
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['bookings', 'booking__is_instant', 'listing']
+ -- Read Elements From Semantic Model 'bookings_source'
+ -- Metric Time Dimension 'ds'
SELECT
- listing
- , booking__is_instant
- , bookings
- FROM (
- -- Read Elements From Semantic Model 'bookings_source'
- -- Metric Time Dimension 'ds'
- SELECT
- listing_id AS listing
- , is_instant AS booking__is_instant
- , 1 AS bookings
- FROM ***************************.fct_bookings bookings_source_src_28000
- ) subq_47
- WHERE booking__is_instant
- ) subq_49
- LEFT OUTER JOIN
- ***************************.dim_listings_latest listings_latest_src_28000
- ON
- subq_49.listing = listings_latest_src_28000.listing_id
- ) subq_54
- WHERE (listing__is_lux_latest) AND (booking__is_instant)
- ) subq_58
+ listing_id AS listing
+ , is_instant AS booking__is_instant
+ , 1 AS bookings
+ FROM ***************************.fct_bookings bookings_source_src_28000
+ ) subq_47
+ WHERE booking__is_instant
+ ) subq_49
+ LEFT OUTER JOIN
+ ***************************.dim_listings_latest listings_latest_src_28000
+ ON
+ subq_49.listing = listings_latest_src_28000.listing_id
+ ) subq_57
CROSS JOIN (
-- Constrain Output with WHERE
+ -- Pass Only Elements: ['booking_value', 'booking__is_instant']
-- Pass Only Elements: ['booking_value',]
-- Aggregate Measures
-- Compute Metrics via Expressions
SELECT
SUM(booking_value) AS booking_value
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['booking_value', 'booking__is_instant']
+ -- Read Elements From Semantic Model 'bookings_source'
+ -- Metric Time Dimension 'ds'
SELECT
- booking__is_instant
+ is_instant AS booking__is_instant
, booking_value
- FROM (
- -- Read Elements From Semantic Model 'bookings_source'
- -- Metric Time Dimension 'ds'
- SELECT
- is_instant AS booking__is_instant
- , booking_value
- FROM ***************************.fct_bookings bookings_source_src_28000
- ) subq_60
- WHERE booking__is_instant
- ) subq_62
+ FROM ***************************.fct_bookings bookings_source_src_28000
+ ) subq_59
WHERE booking__is_instant
- ) subq_66
- ) subq_67
-) subq_68
+ ) subq_64
+ ) subq_65
+) subq_66
diff --git a/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_filters__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_filters__plan0_optimized.sql
index d436e1b814..1adb0f4733 100644
--- a/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_filters__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_filters__plan0_optimized.sql
@@ -9,8 +9,8 @@ FROM (
-- Combine Aggregated Outputs
SELECT
MAX(subq_45.average_booking_value) AS average_booking_value
- , MAX(subq_58.bookings) AS bookings
- , MAX(subq_66.booking_value) AS booking_value
+ , MAX(subq_57.bookings) AS bookings
+ , MAX(subq_64.booking_value) AS booking_value
FROM (
-- Constrain Output with WHERE
-- Pass Only Elements: ['average_booking_value',]
@@ -22,15 +22,13 @@ FROM (
-- Join Standard Outputs
-- Pass Only Elements: ['average_booking_value', 'listing__is_lux_latest', 'booking__is_instant']
SELECT
- subq_36.booking__is_instant AS booking__is_instant
- , listings_latest_src_28000.is_lux AS listing__is_lux_latest
+ listings_latest_src_28000.is_lux AS listing__is_lux_latest
, subq_36.average_booking_value AS average_booking_value
FROM (
-- Constrain Output with WHERE
-- Pass Only Elements: ['average_booking_value', 'booking__is_instant', 'listing']
SELECT
listing
- , booking__is_instant
, average_booking_value
FROM (
-- Read Elements From Semantic Model 'bookings_source'
@@ -48,71 +46,55 @@ FROM (
ON
subq_36.listing = listings_latest_src_28000.listing_id
) subq_41
- WHERE (listing__is_lux_latest) AND (booking__is_instant)
+ WHERE listing__is_lux_latest
) subq_45
CROSS JOIN (
- -- Constrain Output with WHERE
+ -- Join Standard Outputs
+ -- Pass Only Elements: ['bookings', 'listing__is_lux_latest', 'booking__is_instant']
-- Pass Only Elements: ['bookings',]
-- Aggregate Measures
-- Compute Metrics via Expressions
SELECT
- SUM(bookings) AS bookings
+ SUM(subq_49.bookings) AS bookings
FROM (
- -- Join Standard Outputs
- -- Pass Only Elements: ['bookings', 'listing__is_lux_latest', 'booking__is_instant']
+ -- Constrain Output with WHERE
+ -- Pass Only Elements: ['bookings', 'booking__is_instant', 'listing']
SELECT
- subq_49.booking__is_instant AS booking__is_instant
- , listings_latest_src_28000.is_lux AS listing__is_lux_latest
- , subq_49.bookings AS bookings
+ listing
+ , bookings
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['bookings', 'booking__is_instant', 'listing']
+ -- Read Elements From Semantic Model 'bookings_source'
+ -- Metric Time Dimension 'ds'
SELECT
- listing
- , booking__is_instant
- , bookings
- FROM (
- -- Read Elements From Semantic Model 'bookings_source'
- -- Metric Time Dimension 'ds'
- SELECT
- listing_id AS listing
- , is_instant AS booking__is_instant
- , 1 AS bookings
- FROM ***************************.fct_bookings bookings_source_src_28000
- ) subq_47
- WHERE booking__is_instant
- ) subq_49
- LEFT OUTER JOIN
- ***************************.dim_listings_latest listings_latest_src_28000
- ON
- subq_49.listing = listings_latest_src_28000.listing_id
- ) subq_54
- WHERE (listing__is_lux_latest) AND (booking__is_instant)
- ) subq_58
+ listing_id AS listing
+ , is_instant AS booking__is_instant
+ , 1 AS bookings
+ FROM ***************************.fct_bookings bookings_source_src_28000
+ ) subq_47
+ WHERE booking__is_instant
+ ) subq_49
+ LEFT OUTER JOIN
+ ***************************.dim_listings_latest listings_latest_src_28000
+ ON
+ subq_49.listing = listings_latest_src_28000.listing_id
+ ) subq_57
CROSS JOIN (
-- Constrain Output with WHERE
+ -- Pass Only Elements: ['booking_value', 'booking__is_instant']
-- Pass Only Elements: ['booking_value',]
-- Aggregate Measures
-- Compute Metrics via Expressions
SELECT
SUM(booking_value) AS booking_value
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['booking_value', 'booking__is_instant']
+ -- Read Elements From Semantic Model 'bookings_source'
+ -- Metric Time Dimension 'ds'
SELECT
- booking__is_instant
+ is_instant AS booking__is_instant
, booking_value
- FROM (
- -- Read Elements From Semantic Model 'bookings_source'
- -- Metric Time Dimension 'ds'
- SELECT
- is_instant AS booking__is_instant
- , booking_value
- FROM ***************************.fct_bookings bookings_source_src_28000
- ) subq_60
- WHERE booking__is_instant
- ) subq_62
+ FROM ***************************.fct_bookings bookings_source_src_28000
+ ) subq_59
WHERE booking__is_instant
- ) subq_66
- ) subq_67
-) subq_68
+ ) subq_64
+ ) subq_65
+) subq_66
diff --git a/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_filters__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_filters__plan0_optimized.sql
index d436e1b814..1adb0f4733 100644
--- a/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_filters__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_filters__plan0_optimized.sql
@@ -9,8 +9,8 @@ FROM (
-- Combine Aggregated Outputs
SELECT
MAX(subq_45.average_booking_value) AS average_booking_value
- , MAX(subq_58.bookings) AS bookings
- , MAX(subq_66.booking_value) AS booking_value
+ , MAX(subq_57.bookings) AS bookings
+ , MAX(subq_64.booking_value) AS booking_value
FROM (
-- Constrain Output with WHERE
-- Pass Only Elements: ['average_booking_value',]
@@ -22,15 +22,13 @@ FROM (
-- Join Standard Outputs
-- Pass Only Elements: ['average_booking_value', 'listing__is_lux_latest', 'booking__is_instant']
SELECT
- subq_36.booking__is_instant AS booking__is_instant
- , listings_latest_src_28000.is_lux AS listing__is_lux_latest
+ listings_latest_src_28000.is_lux AS listing__is_lux_latest
, subq_36.average_booking_value AS average_booking_value
FROM (
-- Constrain Output with WHERE
-- Pass Only Elements: ['average_booking_value', 'booking__is_instant', 'listing']
SELECT
listing
- , booking__is_instant
, average_booking_value
FROM (
-- Read Elements From Semantic Model 'bookings_source'
@@ -48,71 +46,55 @@ FROM (
ON
subq_36.listing = listings_latest_src_28000.listing_id
) subq_41
- WHERE (listing__is_lux_latest) AND (booking__is_instant)
+ WHERE listing__is_lux_latest
) subq_45
CROSS JOIN (
- -- Constrain Output with WHERE
+ -- Join Standard Outputs
+ -- Pass Only Elements: ['bookings', 'listing__is_lux_latest', 'booking__is_instant']
-- Pass Only Elements: ['bookings',]
-- Aggregate Measures
-- Compute Metrics via Expressions
SELECT
- SUM(bookings) AS bookings
+ SUM(subq_49.bookings) AS bookings
FROM (
- -- Join Standard Outputs
- -- Pass Only Elements: ['bookings', 'listing__is_lux_latest', 'booking__is_instant']
+ -- Constrain Output with WHERE
+ -- Pass Only Elements: ['bookings', 'booking__is_instant', 'listing']
SELECT
- subq_49.booking__is_instant AS booking__is_instant
- , listings_latest_src_28000.is_lux AS listing__is_lux_latest
- , subq_49.bookings AS bookings
+ listing
+ , bookings
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['bookings', 'booking__is_instant', 'listing']
+ -- Read Elements From Semantic Model 'bookings_source'
+ -- Metric Time Dimension 'ds'
SELECT
- listing
- , booking__is_instant
- , bookings
- FROM (
- -- Read Elements From Semantic Model 'bookings_source'
- -- Metric Time Dimension 'ds'
- SELECT
- listing_id AS listing
- , is_instant AS booking__is_instant
- , 1 AS bookings
- FROM ***************************.fct_bookings bookings_source_src_28000
- ) subq_47
- WHERE booking__is_instant
- ) subq_49
- LEFT OUTER JOIN
- ***************************.dim_listings_latest listings_latest_src_28000
- ON
- subq_49.listing = listings_latest_src_28000.listing_id
- ) subq_54
- WHERE (listing__is_lux_latest) AND (booking__is_instant)
- ) subq_58
+ listing_id AS listing
+ , is_instant AS booking__is_instant
+ , 1 AS bookings
+ FROM ***************************.fct_bookings bookings_source_src_28000
+ ) subq_47
+ WHERE booking__is_instant
+ ) subq_49
+ LEFT OUTER JOIN
+ ***************************.dim_listings_latest listings_latest_src_28000
+ ON
+ subq_49.listing = listings_latest_src_28000.listing_id
+ ) subq_57
CROSS JOIN (
-- Constrain Output with WHERE
+ -- Pass Only Elements: ['booking_value', 'booking__is_instant']
-- Pass Only Elements: ['booking_value',]
-- Aggregate Measures
-- Compute Metrics via Expressions
SELECT
SUM(booking_value) AS booking_value
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['booking_value', 'booking__is_instant']
+ -- Read Elements From Semantic Model 'bookings_source'
+ -- Metric Time Dimension 'ds'
SELECT
- booking__is_instant
+ is_instant AS booking__is_instant
, booking_value
- FROM (
- -- Read Elements From Semantic Model 'bookings_source'
- -- Metric Time Dimension 'ds'
- SELECT
- is_instant AS booking__is_instant
- , booking_value
- FROM ***************************.fct_bookings bookings_source_src_28000
- ) subq_60
- WHERE booking__is_instant
- ) subq_62
+ FROM ***************************.fct_bookings bookings_source_src_28000
+ ) subq_59
WHERE booking__is_instant
- ) subq_66
- ) subq_67
-) subq_68
+ ) subq_64
+ ) subq_65
+) subq_66
diff --git a/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_filters__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_filters__plan0_optimized.sql
index d436e1b814..1adb0f4733 100644
--- a/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_filters__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_filters__plan0_optimized.sql
@@ -9,8 +9,8 @@ FROM (
-- Combine Aggregated Outputs
SELECT
MAX(subq_45.average_booking_value) AS average_booking_value
- , MAX(subq_58.bookings) AS bookings
- , MAX(subq_66.booking_value) AS booking_value
+ , MAX(subq_57.bookings) AS bookings
+ , MAX(subq_64.booking_value) AS booking_value
FROM (
-- Constrain Output with WHERE
-- Pass Only Elements: ['average_booking_value',]
@@ -22,15 +22,13 @@ FROM (
-- Join Standard Outputs
-- Pass Only Elements: ['average_booking_value', 'listing__is_lux_latest', 'booking__is_instant']
SELECT
- subq_36.booking__is_instant AS booking__is_instant
- , listings_latest_src_28000.is_lux AS listing__is_lux_latest
+ listings_latest_src_28000.is_lux AS listing__is_lux_latest
, subq_36.average_booking_value AS average_booking_value
FROM (
-- Constrain Output with WHERE
-- Pass Only Elements: ['average_booking_value', 'booking__is_instant', 'listing']
SELECT
listing
- , booking__is_instant
, average_booking_value
FROM (
-- Read Elements From Semantic Model 'bookings_source'
@@ -48,71 +46,55 @@ FROM (
ON
subq_36.listing = listings_latest_src_28000.listing_id
) subq_41
- WHERE (listing__is_lux_latest) AND (booking__is_instant)
+ WHERE listing__is_lux_latest
) subq_45
CROSS JOIN (
- -- Constrain Output with WHERE
+ -- Join Standard Outputs
+ -- Pass Only Elements: ['bookings', 'listing__is_lux_latest', 'booking__is_instant']
-- Pass Only Elements: ['bookings',]
-- Aggregate Measures
-- Compute Metrics via Expressions
SELECT
- SUM(bookings) AS bookings
+ SUM(subq_49.bookings) AS bookings
FROM (
- -- Join Standard Outputs
- -- Pass Only Elements: ['bookings', 'listing__is_lux_latest', 'booking__is_instant']
+ -- Constrain Output with WHERE
+ -- Pass Only Elements: ['bookings', 'booking__is_instant', 'listing']
SELECT
- subq_49.booking__is_instant AS booking__is_instant
- , listings_latest_src_28000.is_lux AS listing__is_lux_latest
- , subq_49.bookings AS bookings
+ listing
+ , bookings
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['bookings', 'booking__is_instant', 'listing']
+ -- Read Elements From Semantic Model 'bookings_source'
+ -- Metric Time Dimension 'ds'
SELECT
- listing
- , booking__is_instant
- , bookings
- FROM (
- -- Read Elements From Semantic Model 'bookings_source'
- -- Metric Time Dimension 'ds'
- SELECT
- listing_id AS listing
- , is_instant AS booking__is_instant
- , 1 AS bookings
- FROM ***************************.fct_bookings bookings_source_src_28000
- ) subq_47
- WHERE booking__is_instant
- ) subq_49
- LEFT OUTER JOIN
- ***************************.dim_listings_latest listings_latest_src_28000
- ON
- subq_49.listing = listings_latest_src_28000.listing_id
- ) subq_54
- WHERE (listing__is_lux_latest) AND (booking__is_instant)
- ) subq_58
+ listing_id AS listing
+ , is_instant AS booking__is_instant
+ , 1 AS bookings
+ FROM ***************************.fct_bookings bookings_source_src_28000
+ ) subq_47
+ WHERE booking__is_instant
+ ) subq_49
+ LEFT OUTER JOIN
+ ***************************.dim_listings_latest listings_latest_src_28000
+ ON
+ subq_49.listing = listings_latest_src_28000.listing_id
+ ) subq_57
CROSS JOIN (
-- Constrain Output with WHERE
+ -- Pass Only Elements: ['booking_value', 'booking__is_instant']
-- Pass Only Elements: ['booking_value',]
-- Aggregate Measures
-- Compute Metrics via Expressions
SELECT
SUM(booking_value) AS booking_value
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['booking_value', 'booking__is_instant']
+ -- Read Elements From Semantic Model 'bookings_source'
+ -- Metric Time Dimension 'ds'
SELECT
- booking__is_instant
+ is_instant AS booking__is_instant
, booking_value
- FROM (
- -- Read Elements From Semantic Model 'bookings_source'
- -- Metric Time Dimension 'ds'
- SELECT
- is_instant AS booking__is_instant
- , booking_value
- FROM ***************************.fct_bookings bookings_source_src_28000
- ) subq_60
- WHERE booking__is_instant
- ) subq_62
+ FROM ***************************.fct_bookings bookings_source_src_28000
+ ) subq_59
WHERE booking__is_instant
- ) subq_66
- ) subq_67
-) subq_68
+ ) subq_64
+ ) subq_65
+) subq_66
diff --git a/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_filters__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_filters__plan0_optimized.sql
index d436e1b814..1adb0f4733 100644
--- a/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_filters__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_filters__plan0_optimized.sql
@@ -9,8 +9,8 @@ FROM (
-- Combine Aggregated Outputs
SELECT
MAX(subq_45.average_booking_value) AS average_booking_value
- , MAX(subq_58.bookings) AS bookings
- , MAX(subq_66.booking_value) AS booking_value
+ , MAX(subq_57.bookings) AS bookings
+ , MAX(subq_64.booking_value) AS booking_value
FROM (
-- Constrain Output with WHERE
-- Pass Only Elements: ['average_booking_value',]
@@ -22,15 +22,13 @@ FROM (
-- Join Standard Outputs
-- Pass Only Elements: ['average_booking_value', 'listing__is_lux_latest', 'booking__is_instant']
SELECT
- subq_36.booking__is_instant AS booking__is_instant
- , listings_latest_src_28000.is_lux AS listing__is_lux_latest
+ listings_latest_src_28000.is_lux AS listing__is_lux_latest
, subq_36.average_booking_value AS average_booking_value
FROM (
-- Constrain Output with WHERE
-- Pass Only Elements: ['average_booking_value', 'booking__is_instant', 'listing']
SELECT
listing
- , booking__is_instant
, average_booking_value
FROM (
-- Read Elements From Semantic Model 'bookings_source'
@@ -48,71 +46,55 @@ FROM (
ON
subq_36.listing = listings_latest_src_28000.listing_id
) subq_41
- WHERE (listing__is_lux_latest) AND (booking__is_instant)
+ WHERE listing__is_lux_latest
) subq_45
CROSS JOIN (
- -- Constrain Output with WHERE
+ -- Join Standard Outputs
+ -- Pass Only Elements: ['bookings', 'listing__is_lux_latest', 'booking__is_instant']
-- Pass Only Elements: ['bookings',]
-- Aggregate Measures
-- Compute Metrics via Expressions
SELECT
- SUM(bookings) AS bookings
+ SUM(subq_49.bookings) AS bookings
FROM (
- -- Join Standard Outputs
- -- Pass Only Elements: ['bookings', 'listing__is_lux_latest', 'booking__is_instant']
+ -- Constrain Output with WHERE
+ -- Pass Only Elements: ['bookings', 'booking__is_instant', 'listing']
SELECT
- subq_49.booking__is_instant AS booking__is_instant
- , listings_latest_src_28000.is_lux AS listing__is_lux_latest
- , subq_49.bookings AS bookings
+ listing
+ , bookings
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['bookings', 'booking__is_instant', 'listing']
+ -- Read Elements From Semantic Model 'bookings_source'
+ -- Metric Time Dimension 'ds'
SELECT
- listing
- , booking__is_instant
- , bookings
- FROM (
- -- Read Elements From Semantic Model 'bookings_source'
- -- Metric Time Dimension 'ds'
- SELECT
- listing_id AS listing
- , is_instant AS booking__is_instant
- , 1 AS bookings
- FROM ***************************.fct_bookings bookings_source_src_28000
- ) subq_47
- WHERE booking__is_instant
- ) subq_49
- LEFT OUTER JOIN
- ***************************.dim_listings_latest listings_latest_src_28000
- ON
- subq_49.listing = listings_latest_src_28000.listing_id
- ) subq_54
- WHERE (listing__is_lux_latest) AND (booking__is_instant)
- ) subq_58
+ listing_id AS listing
+ , is_instant AS booking__is_instant
+ , 1 AS bookings
+ FROM ***************************.fct_bookings bookings_source_src_28000
+ ) subq_47
+ WHERE booking__is_instant
+ ) subq_49
+ LEFT OUTER JOIN
+ ***************************.dim_listings_latest listings_latest_src_28000
+ ON
+ subq_49.listing = listings_latest_src_28000.listing_id
+ ) subq_57
CROSS JOIN (
-- Constrain Output with WHERE
+ -- Pass Only Elements: ['booking_value', 'booking__is_instant']
-- Pass Only Elements: ['booking_value',]
-- Aggregate Measures
-- Compute Metrics via Expressions
SELECT
SUM(booking_value) AS booking_value
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['booking_value', 'booking__is_instant']
+ -- Read Elements From Semantic Model 'bookings_source'
+ -- Metric Time Dimension 'ds'
SELECT
- booking__is_instant
+ is_instant AS booking__is_instant
, booking_value
- FROM (
- -- Read Elements From Semantic Model 'bookings_source'
- -- Metric Time Dimension 'ds'
- SELECT
- is_instant AS booking__is_instant
- , booking_value
- FROM ***************************.fct_bookings bookings_source_src_28000
- ) subq_60
- WHERE booking__is_instant
- ) subq_62
+ FROM ***************************.fct_bookings bookings_source_src_28000
+ ) subq_59
WHERE booking__is_instant
- ) subq_66
- ) subq_67
-) subq_68
+ ) subq_64
+ ) subq_65
+) subq_66
diff --git a/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_filters__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_filters__plan0_optimized.sql
index d436e1b814..1adb0f4733 100644
--- a/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_filters__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_filters__plan0_optimized.sql
@@ -9,8 +9,8 @@ FROM (
-- Combine Aggregated Outputs
SELECT
MAX(subq_45.average_booking_value) AS average_booking_value
- , MAX(subq_58.bookings) AS bookings
- , MAX(subq_66.booking_value) AS booking_value
+ , MAX(subq_57.bookings) AS bookings
+ , MAX(subq_64.booking_value) AS booking_value
FROM (
-- Constrain Output with WHERE
-- Pass Only Elements: ['average_booking_value',]
@@ -22,15 +22,13 @@ FROM (
-- Join Standard Outputs
-- Pass Only Elements: ['average_booking_value', 'listing__is_lux_latest', 'booking__is_instant']
SELECT
- subq_36.booking__is_instant AS booking__is_instant
- , listings_latest_src_28000.is_lux AS listing__is_lux_latest
+ listings_latest_src_28000.is_lux AS listing__is_lux_latest
, subq_36.average_booking_value AS average_booking_value
FROM (
-- Constrain Output with WHERE
-- Pass Only Elements: ['average_booking_value', 'booking__is_instant', 'listing']
SELECT
listing
- , booking__is_instant
, average_booking_value
FROM (
-- Read Elements From Semantic Model 'bookings_source'
@@ -48,71 +46,55 @@ FROM (
ON
subq_36.listing = listings_latest_src_28000.listing_id
) subq_41
- WHERE (listing__is_lux_latest) AND (booking__is_instant)
+ WHERE listing__is_lux_latest
) subq_45
CROSS JOIN (
- -- Constrain Output with WHERE
+ -- Join Standard Outputs
+ -- Pass Only Elements: ['bookings', 'listing__is_lux_latest', 'booking__is_instant']
-- Pass Only Elements: ['bookings',]
-- Aggregate Measures
-- Compute Metrics via Expressions
SELECT
- SUM(bookings) AS bookings
+ SUM(subq_49.bookings) AS bookings
FROM (
- -- Join Standard Outputs
- -- Pass Only Elements: ['bookings', 'listing__is_lux_latest', 'booking__is_instant']
+ -- Constrain Output with WHERE
+ -- Pass Only Elements: ['bookings', 'booking__is_instant', 'listing']
SELECT
- subq_49.booking__is_instant AS booking__is_instant
- , listings_latest_src_28000.is_lux AS listing__is_lux_latest
- , subq_49.bookings AS bookings
+ listing
+ , bookings
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['bookings', 'booking__is_instant', 'listing']
+ -- Read Elements From Semantic Model 'bookings_source'
+ -- Metric Time Dimension 'ds'
SELECT
- listing
- , booking__is_instant
- , bookings
- FROM (
- -- Read Elements From Semantic Model 'bookings_source'
- -- Metric Time Dimension 'ds'
- SELECT
- listing_id AS listing
- , is_instant AS booking__is_instant
- , 1 AS bookings
- FROM ***************************.fct_bookings bookings_source_src_28000
- ) subq_47
- WHERE booking__is_instant
- ) subq_49
- LEFT OUTER JOIN
- ***************************.dim_listings_latest listings_latest_src_28000
- ON
- subq_49.listing = listings_latest_src_28000.listing_id
- ) subq_54
- WHERE (listing__is_lux_latest) AND (booking__is_instant)
- ) subq_58
+ listing_id AS listing
+ , is_instant AS booking__is_instant
+ , 1 AS bookings
+ FROM ***************************.fct_bookings bookings_source_src_28000
+ ) subq_47
+ WHERE booking__is_instant
+ ) subq_49
+ LEFT OUTER JOIN
+ ***************************.dim_listings_latest listings_latest_src_28000
+ ON
+ subq_49.listing = listings_latest_src_28000.listing_id
+ ) subq_57
CROSS JOIN (
-- Constrain Output with WHERE
+ -- Pass Only Elements: ['booking_value', 'booking__is_instant']
-- Pass Only Elements: ['booking_value',]
-- Aggregate Measures
-- Compute Metrics via Expressions
SELECT
SUM(booking_value) AS booking_value
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['booking_value', 'booking__is_instant']
+ -- Read Elements From Semantic Model 'bookings_source'
+ -- Metric Time Dimension 'ds'
SELECT
- booking__is_instant
+ is_instant AS booking__is_instant
, booking_value
- FROM (
- -- Read Elements From Semantic Model 'bookings_source'
- -- Metric Time Dimension 'ds'
- SELECT
- is_instant AS booking__is_instant
- , booking_value
- FROM ***************************.fct_bookings bookings_source_src_28000
- ) subq_60
- WHERE booking__is_instant
- ) subq_62
+ FROM ***************************.fct_bookings bookings_source_src_28000
+ ) subq_59
WHERE booking__is_instant
- ) subq_66
- ) subq_67
-) subq_68
+ ) subq_64
+ ) subq_65
+) subq_66
diff --git a/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/BigQuery/test_inner_query_single_hop__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/BigQuery/test_inner_query_single_hop__plan0_optimized.sql
index e612769d3d..16038f3eef 100644
--- a/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/BigQuery/test_inner_query_single_hop__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/BigQuery/test_inner_query_single_hop__plan0_optimized.sql
@@ -8,11 +8,12 @@ FROM (
-- Join Standard Outputs
-- Pass Only Elements: ['third_hop_count', 'customer_third_hop_id__customer_id__customer_third_hop_id__paraguayan_customers']
SELECT
- subq_27.customer_id__customer_third_hop_id__paraguayan_customers AS customer_third_hop_id__customer_id__customer_third_hop_id__paraguayan_customers
+ subq_26.customer_id__customer_third_hop_id__paraguayan_customers AS customer_third_hop_id__customer_id__customer_third_hop_id__paraguayan_customers
, third_hop_table_src_22000.customer_third_hop_id AS third_hop_count
FROM ***************************.third_hop_table third_hop_table_src_22000
LEFT OUTER JOIN (
-- Constrain Output with WHERE
+ -- Pass Only Elements: ['customers_with_other_data', 'customer_id__country', 'customer_id__customer_third_hop_id']
-- Pass Only Elements: ['customers_with_other_data', 'customer_id__customer_third_hop_id']
-- Aggregate Measures
-- Compute Metrics via Expressions
@@ -21,28 +22,19 @@ FROM (
customer_id__customer_third_hop_id
, SUM(customers_with_other_data) AS customer_id__customer_third_hop_id__paraguayan_customers
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['customers_with_other_data', 'customer_id__country', 'customer_id__customer_third_hop_id']
+ -- Read Elements From Semantic Model 'customer_other_data'
+ -- Metric Time Dimension 'acquired_ds'
SELECT
- customer_id__customer_third_hop_id
- , customer_id__country
- , customers_with_other_data
- FROM (
- -- Read Elements From Semantic Model 'customer_other_data'
- -- Metric Time Dimension 'acquired_ds'
- SELECT
- customer_third_hop_id AS customer_id__customer_third_hop_id
- , country AS customer_id__country
- , 1 AS customers_with_other_data
- FROM ***************************.customer_other_data customer_other_data_src_22000
- ) subq_20
- WHERE customer_id__country = 'paraguay'
- ) subq_22
+ customer_third_hop_id AS customer_id__customer_third_hop_id
+ , country AS customer_id__country
+ , 1 AS customers_with_other_data
+ FROM ***************************.customer_other_data customer_other_data_src_22000
+ ) subq_20
WHERE customer_id__country = 'paraguay'
GROUP BY
customer_id__customer_third_hop_id
- ) subq_27
+ ) subq_26
ON
- third_hop_table_src_22000.customer_third_hop_id = subq_27.customer_id__customer_third_hop_id
-) subq_29
+ third_hop_table_src_22000.customer_third_hop_id = subq_26.customer_id__customer_third_hop_id
+) subq_28
WHERE customer_third_hop_id__customer_id__customer_third_hop_id__paraguayan_customers > 0
diff --git a/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Databricks/test_inner_query_single_hop__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Databricks/test_inner_query_single_hop__plan0_optimized.sql
index e612769d3d..16038f3eef 100644
--- a/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Databricks/test_inner_query_single_hop__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Databricks/test_inner_query_single_hop__plan0_optimized.sql
@@ -8,11 +8,12 @@ FROM (
-- Join Standard Outputs
-- Pass Only Elements: ['third_hop_count', 'customer_third_hop_id__customer_id__customer_third_hop_id__paraguayan_customers']
SELECT
- subq_27.customer_id__customer_third_hop_id__paraguayan_customers AS customer_third_hop_id__customer_id__customer_third_hop_id__paraguayan_customers
+ subq_26.customer_id__customer_third_hop_id__paraguayan_customers AS customer_third_hop_id__customer_id__customer_third_hop_id__paraguayan_customers
, third_hop_table_src_22000.customer_third_hop_id AS third_hop_count
FROM ***************************.third_hop_table third_hop_table_src_22000
LEFT OUTER JOIN (
-- Constrain Output with WHERE
+ -- Pass Only Elements: ['customers_with_other_data', 'customer_id__country', 'customer_id__customer_third_hop_id']
-- Pass Only Elements: ['customers_with_other_data', 'customer_id__customer_third_hop_id']
-- Aggregate Measures
-- Compute Metrics via Expressions
@@ -21,28 +22,19 @@ FROM (
customer_id__customer_third_hop_id
, SUM(customers_with_other_data) AS customer_id__customer_third_hop_id__paraguayan_customers
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['customers_with_other_data', 'customer_id__country', 'customer_id__customer_third_hop_id']
+ -- Read Elements From Semantic Model 'customer_other_data'
+ -- Metric Time Dimension 'acquired_ds'
SELECT
- customer_id__customer_third_hop_id
- , customer_id__country
- , customers_with_other_data
- FROM (
- -- Read Elements From Semantic Model 'customer_other_data'
- -- Metric Time Dimension 'acquired_ds'
- SELECT
- customer_third_hop_id AS customer_id__customer_third_hop_id
- , country AS customer_id__country
- , 1 AS customers_with_other_data
- FROM ***************************.customer_other_data customer_other_data_src_22000
- ) subq_20
- WHERE customer_id__country = 'paraguay'
- ) subq_22
+ customer_third_hop_id AS customer_id__customer_third_hop_id
+ , country AS customer_id__country
+ , 1 AS customers_with_other_data
+ FROM ***************************.customer_other_data customer_other_data_src_22000
+ ) subq_20
WHERE customer_id__country = 'paraguay'
GROUP BY
customer_id__customer_third_hop_id
- ) subq_27
+ ) subq_26
ON
- third_hop_table_src_22000.customer_third_hop_id = subq_27.customer_id__customer_third_hop_id
-) subq_29
+ third_hop_table_src_22000.customer_third_hop_id = subq_26.customer_id__customer_third_hop_id
+) subq_28
WHERE customer_third_hop_id__customer_id__customer_third_hop_id__paraguayan_customers > 0
diff --git a/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/DuckDB/test_inner_query_single_hop__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/DuckDB/test_inner_query_single_hop__plan0_optimized.sql
index e612769d3d..16038f3eef 100644
--- a/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/DuckDB/test_inner_query_single_hop__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/DuckDB/test_inner_query_single_hop__plan0_optimized.sql
@@ -8,11 +8,12 @@ FROM (
-- Join Standard Outputs
-- Pass Only Elements: ['third_hop_count', 'customer_third_hop_id__customer_id__customer_third_hop_id__paraguayan_customers']
SELECT
- subq_27.customer_id__customer_third_hop_id__paraguayan_customers AS customer_third_hop_id__customer_id__customer_third_hop_id__paraguayan_customers
+ subq_26.customer_id__customer_third_hop_id__paraguayan_customers AS customer_third_hop_id__customer_id__customer_third_hop_id__paraguayan_customers
, third_hop_table_src_22000.customer_third_hop_id AS third_hop_count
FROM ***************************.third_hop_table third_hop_table_src_22000
LEFT OUTER JOIN (
-- Constrain Output with WHERE
+ -- Pass Only Elements: ['customers_with_other_data', 'customer_id__country', 'customer_id__customer_third_hop_id']
-- Pass Only Elements: ['customers_with_other_data', 'customer_id__customer_third_hop_id']
-- Aggregate Measures
-- Compute Metrics via Expressions
@@ -21,28 +22,19 @@ FROM (
customer_id__customer_third_hop_id
, SUM(customers_with_other_data) AS customer_id__customer_third_hop_id__paraguayan_customers
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['customers_with_other_data', 'customer_id__country', 'customer_id__customer_third_hop_id']
+ -- Read Elements From Semantic Model 'customer_other_data'
+ -- Metric Time Dimension 'acquired_ds'
SELECT
- customer_id__customer_third_hop_id
- , customer_id__country
- , customers_with_other_data
- FROM (
- -- Read Elements From Semantic Model 'customer_other_data'
- -- Metric Time Dimension 'acquired_ds'
- SELECT
- customer_third_hop_id AS customer_id__customer_third_hop_id
- , country AS customer_id__country
- , 1 AS customers_with_other_data
- FROM ***************************.customer_other_data customer_other_data_src_22000
- ) subq_20
- WHERE customer_id__country = 'paraguay'
- ) subq_22
+ customer_third_hop_id AS customer_id__customer_third_hop_id
+ , country AS customer_id__country
+ , 1 AS customers_with_other_data
+ FROM ***************************.customer_other_data customer_other_data_src_22000
+ ) subq_20
WHERE customer_id__country = 'paraguay'
GROUP BY
customer_id__customer_third_hop_id
- ) subq_27
+ ) subq_26
ON
- third_hop_table_src_22000.customer_third_hop_id = subq_27.customer_id__customer_third_hop_id
-) subq_29
+ third_hop_table_src_22000.customer_third_hop_id = subq_26.customer_id__customer_third_hop_id
+) subq_28
WHERE customer_third_hop_id__customer_id__customer_third_hop_id__paraguayan_customers > 0
diff --git a/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Postgres/test_inner_query_single_hop__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Postgres/test_inner_query_single_hop__plan0_optimized.sql
index e612769d3d..16038f3eef 100644
--- a/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Postgres/test_inner_query_single_hop__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Postgres/test_inner_query_single_hop__plan0_optimized.sql
@@ -8,11 +8,12 @@ FROM (
-- Join Standard Outputs
-- Pass Only Elements: ['third_hop_count', 'customer_third_hop_id__customer_id__customer_third_hop_id__paraguayan_customers']
SELECT
- subq_27.customer_id__customer_third_hop_id__paraguayan_customers AS customer_third_hop_id__customer_id__customer_third_hop_id__paraguayan_customers
+ subq_26.customer_id__customer_third_hop_id__paraguayan_customers AS customer_third_hop_id__customer_id__customer_third_hop_id__paraguayan_customers
, third_hop_table_src_22000.customer_third_hop_id AS third_hop_count
FROM ***************************.third_hop_table third_hop_table_src_22000
LEFT OUTER JOIN (
-- Constrain Output with WHERE
+ -- Pass Only Elements: ['customers_with_other_data', 'customer_id__country', 'customer_id__customer_third_hop_id']
-- Pass Only Elements: ['customers_with_other_data', 'customer_id__customer_third_hop_id']
-- Aggregate Measures
-- Compute Metrics via Expressions
@@ -21,28 +22,19 @@ FROM (
customer_id__customer_third_hop_id
, SUM(customers_with_other_data) AS customer_id__customer_third_hop_id__paraguayan_customers
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['customers_with_other_data', 'customer_id__country', 'customer_id__customer_third_hop_id']
+ -- Read Elements From Semantic Model 'customer_other_data'
+ -- Metric Time Dimension 'acquired_ds'
SELECT
- customer_id__customer_third_hop_id
- , customer_id__country
- , customers_with_other_data
- FROM (
- -- Read Elements From Semantic Model 'customer_other_data'
- -- Metric Time Dimension 'acquired_ds'
- SELECT
- customer_third_hop_id AS customer_id__customer_third_hop_id
- , country AS customer_id__country
- , 1 AS customers_with_other_data
- FROM ***************************.customer_other_data customer_other_data_src_22000
- ) subq_20
- WHERE customer_id__country = 'paraguay'
- ) subq_22
+ customer_third_hop_id AS customer_id__customer_third_hop_id
+ , country AS customer_id__country
+ , 1 AS customers_with_other_data
+ FROM ***************************.customer_other_data customer_other_data_src_22000
+ ) subq_20
WHERE customer_id__country = 'paraguay'
GROUP BY
customer_id__customer_third_hop_id
- ) subq_27
+ ) subq_26
ON
- third_hop_table_src_22000.customer_third_hop_id = subq_27.customer_id__customer_third_hop_id
-) subq_29
+ third_hop_table_src_22000.customer_third_hop_id = subq_26.customer_id__customer_third_hop_id
+) subq_28
WHERE customer_third_hop_id__customer_id__customer_third_hop_id__paraguayan_customers > 0
diff --git a/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Redshift/test_inner_query_single_hop__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Redshift/test_inner_query_single_hop__plan0_optimized.sql
index e612769d3d..16038f3eef 100644
--- a/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Redshift/test_inner_query_single_hop__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Redshift/test_inner_query_single_hop__plan0_optimized.sql
@@ -8,11 +8,12 @@ FROM (
-- Join Standard Outputs
-- Pass Only Elements: ['third_hop_count', 'customer_third_hop_id__customer_id__customer_third_hop_id__paraguayan_customers']
SELECT
- subq_27.customer_id__customer_third_hop_id__paraguayan_customers AS customer_third_hop_id__customer_id__customer_third_hop_id__paraguayan_customers
+ subq_26.customer_id__customer_third_hop_id__paraguayan_customers AS customer_third_hop_id__customer_id__customer_third_hop_id__paraguayan_customers
, third_hop_table_src_22000.customer_third_hop_id AS third_hop_count
FROM ***************************.third_hop_table third_hop_table_src_22000
LEFT OUTER JOIN (
-- Constrain Output with WHERE
+ -- Pass Only Elements: ['customers_with_other_data', 'customer_id__country', 'customer_id__customer_third_hop_id']
-- Pass Only Elements: ['customers_with_other_data', 'customer_id__customer_third_hop_id']
-- Aggregate Measures
-- Compute Metrics via Expressions
@@ -21,28 +22,19 @@ FROM (
customer_id__customer_third_hop_id
, SUM(customers_with_other_data) AS customer_id__customer_third_hop_id__paraguayan_customers
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['customers_with_other_data', 'customer_id__country', 'customer_id__customer_third_hop_id']
+ -- Read Elements From Semantic Model 'customer_other_data'
+ -- Metric Time Dimension 'acquired_ds'
SELECT
- customer_id__customer_third_hop_id
- , customer_id__country
- , customers_with_other_data
- FROM (
- -- Read Elements From Semantic Model 'customer_other_data'
- -- Metric Time Dimension 'acquired_ds'
- SELECT
- customer_third_hop_id AS customer_id__customer_third_hop_id
- , country AS customer_id__country
- , 1 AS customers_with_other_data
- FROM ***************************.customer_other_data customer_other_data_src_22000
- ) subq_20
- WHERE customer_id__country = 'paraguay'
- ) subq_22
+ customer_third_hop_id AS customer_id__customer_third_hop_id
+ , country AS customer_id__country
+ , 1 AS customers_with_other_data
+ FROM ***************************.customer_other_data customer_other_data_src_22000
+ ) subq_20
WHERE customer_id__country = 'paraguay'
GROUP BY
customer_id__customer_third_hop_id
- ) subq_27
+ ) subq_26
ON
- third_hop_table_src_22000.customer_third_hop_id = subq_27.customer_id__customer_third_hop_id
-) subq_29
+ third_hop_table_src_22000.customer_third_hop_id = subq_26.customer_id__customer_third_hop_id
+) subq_28
WHERE customer_third_hop_id__customer_id__customer_third_hop_id__paraguayan_customers > 0
diff --git a/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Snowflake/test_inner_query_single_hop__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Snowflake/test_inner_query_single_hop__plan0_optimized.sql
index e612769d3d..16038f3eef 100644
--- a/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Snowflake/test_inner_query_single_hop__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Snowflake/test_inner_query_single_hop__plan0_optimized.sql
@@ -8,11 +8,12 @@ FROM (
-- Join Standard Outputs
-- Pass Only Elements: ['third_hop_count', 'customer_third_hop_id__customer_id__customer_third_hop_id__paraguayan_customers']
SELECT
- subq_27.customer_id__customer_third_hop_id__paraguayan_customers AS customer_third_hop_id__customer_id__customer_third_hop_id__paraguayan_customers
+ subq_26.customer_id__customer_third_hop_id__paraguayan_customers AS customer_third_hop_id__customer_id__customer_third_hop_id__paraguayan_customers
, third_hop_table_src_22000.customer_third_hop_id AS third_hop_count
FROM ***************************.third_hop_table third_hop_table_src_22000
LEFT OUTER JOIN (
-- Constrain Output with WHERE
+ -- Pass Only Elements: ['customers_with_other_data', 'customer_id__country', 'customer_id__customer_third_hop_id']
-- Pass Only Elements: ['customers_with_other_data', 'customer_id__customer_third_hop_id']
-- Aggregate Measures
-- Compute Metrics via Expressions
@@ -21,28 +22,19 @@ FROM (
customer_id__customer_third_hop_id
, SUM(customers_with_other_data) AS customer_id__customer_third_hop_id__paraguayan_customers
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['customers_with_other_data', 'customer_id__country', 'customer_id__customer_third_hop_id']
+ -- Read Elements From Semantic Model 'customer_other_data'
+ -- Metric Time Dimension 'acquired_ds'
SELECT
- customer_id__customer_third_hop_id
- , customer_id__country
- , customers_with_other_data
- FROM (
- -- Read Elements From Semantic Model 'customer_other_data'
- -- Metric Time Dimension 'acquired_ds'
- SELECT
- customer_third_hop_id AS customer_id__customer_third_hop_id
- , country AS customer_id__country
- , 1 AS customers_with_other_data
- FROM ***************************.customer_other_data customer_other_data_src_22000
- ) subq_20
- WHERE customer_id__country = 'paraguay'
- ) subq_22
+ customer_third_hop_id AS customer_id__customer_third_hop_id
+ , country AS customer_id__country
+ , 1 AS customers_with_other_data
+ FROM ***************************.customer_other_data customer_other_data_src_22000
+ ) subq_20
WHERE customer_id__country = 'paraguay'
GROUP BY
customer_id__customer_third_hop_id
- ) subq_27
+ ) subq_26
ON
- third_hop_table_src_22000.customer_third_hop_id = subq_27.customer_id__customer_third_hop_id
-) subq_29
+ third_hop_table_src_22000.customer_third_hop_id = subq_26.customer_id__customer_third_hop_id
+) subq_28
WHERE customer_third_hop_id__customer_id__customer_third_hop_id__paraguayan_customers > 0
diff --git a/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Trino/test_inner_query_single_hop__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Trino/test_inner_query_single_hop__plan0_optimized.sql
index e612769d3d..16038f3eef 100644
--- a/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Trino/test_inner_query_single_hop__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Trino/test_inner_query_single_hop__plan0_optimized.sql
@@ -8,11 +8,12 @@ FROM (
-- Join Standard Outputs
-- Pass Only Elements: ['third_hop_count', 'customer_third_hop_id__customer_id__customer_third_hop_id__paraguayan_customers']
SELECT
- subq_27.customer_id__customer_third_hop_id__paraguayan_customers AS customer_third_hop_id__customer_id__customer_third_hop_id__paraguayan_customers
+ subq_26.customer_id__customer_third_hop_id__paraguayan_customers AS customer_third_hop_id__customer_id__customer_third_hop_id__paraguayan_customers
, third_hop_table_src_22000.customer_third_hop_id AS third_hop_count
FROM ***************************.third_hop_table third_hop_table_src_22000
LEFT OUTER JOIN (
-- Constrain Output with WHERE
+ -- Pass Only Elements: ['customers_with_other_data', 'customer_id__country', 'customer_id__customer_third_hop_id']
-- Pass Only Elements: ['customers_with_other_data', 'customer_id__customer_third_hop_id']
-- Aggregate Measures
-- Compute Metrics via Expressions
@@ -21,28 +22,19 @@ FROM (
customer_id__customer_third_hop_id
, SUM(customers_with_other_data) AS customer_id__customer_third_hop_id__paraguayan_customers
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['customers_with_other_data', 'customer_id__country', 'customer_id__customer_third_hop_id']
+ -- Read Elements From Semantic Model 'customer_other_data'
+ -- Metric Time Dimension 'acquired_ds'
SELECT
- customer_id__customer_third_hop_id
- , customer_id__country
- , customers_with_other_data
- FROM (
- -- Read Elements From Semantic Model 'customer_other_data'
- -- Metric Time Dimension 'acquired_ds'
- SELECT
- customer_third_hop_id AS customer_id__customer_third_hop_id
- , country AS customer_id__country
- , 1 AS customers_with_other_data
- FROM ***************************.customer_other_data customer_other_data_src_22000
- ) subq_20
- WHERE customer_id__country = 'paraguay'
- ) subq_22
+ customer_third_hop_id AS customer_id__customer_third_hop_id
+ , country AS customer_id__country
+ , 1 AS customers_with_other_data
+ FROM ***************************.customer_other_data customer_other_data_src_22000
+ ) subq_20
WHERE customer_id__country = 'paraguay'
GROUP BY
customer_id__customer_third_hop_id
- ) subq_27
+ ) subq_26
ON
- third_hop_table_src_22000.customer_third_hop_id = subq_27.customer_id__customer_third_hop_id
-) subq_29
+ third_hop_table_src_22000.customer_third_hop_id = subq_26.customer_id__customer_third_hop_id
+) subq_28
WHERE customer_third_hop_id__customer_id__customer_third_hop_id__paraguayan_customers > 0
diff --git a/tests_metricflow/snapshots/test_predicate_pushdown_optimizer.py/DataflowPlan/test_conversion_metric_predicate_pushdown__dfpo_0.xml b/tests_metricflow/snapshots/test_predicate_pushdown_optimizer.py/DataflowPlan/test_conversion_metric_predicate_pushdown__dfpo_0.xml
index c8db880883..cf357d7c00 100644
--- a/tests_metricflow/snapshots/test_predicate_pushdown_optimizer.py/DataflowPlan/test_conversion_metric_predicate_pushdown__dfpo_0.xml
+++ b/tests_metricflow/snapshots/test_predicate_pushdown_optimizer.py/DataflowPlan/test_conversion_metric_predicate_pushdown__dfpo_0.xml
@@ -55,143 +55,108 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests_metricflow/snapshots/test_predicate_pushdown_optimizer.py/DataflowPlan/test_cumulative_metric_predicate_pushdown__dfpo_0.xml b/tests_metricflow/snapshots/test_predicate_pushdown_optimizer.py/DataflowPlan/test_cumulative_metric_predicate_pushdown__dfpo_0.xml
index 5825091ab9..ba6acad042 100644
--- a/tests_metricflow/snapshots/test_predicate_pushdown_optimizer.py/DataflowPlan/test_cumulative_metric_predicate_pushdown__dfpo_0.xml
+++ b/tests_metricflow/snapshots/test_predicate_pushdown_optimizer.py/DataflowPlan/test_cumulative_metric_predicate_pushdown__dfpo_0.xml
@@ -51,156 +51,121 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests_metricflow/snapshots/test_predicate_pushdown_optimizer.py/DataflowPlan/test_fill_nulls_time_spine_metric_predicate_pushdown__dfpo_0.xml b/tests_metricflow/snapshots/test_predicate_pushdown_optimizer.py/DataflowPlan/test_fill_nulls_time_spine_metric_predicate_pushdown__dfpo_0.xml
index 1821e2e4e6..15ec81da3d 100644
--- a/tests_metricflow/snapshots/test_predicate_pushdown_optimizer.py/DataflowPlan/test_fill_nulls_time_spine_metric_predicate_pushdown__dfpo_0.xml
+++ b/tests_metricflow/snapshots/test_predicate_pushdown_optimizer.py/DataflowPlan/test_fill_nulls_time_spine_metric_predicate_pushdown__dfpo_0.xml
@@ -102,151 +102,120 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -317,7 +286,7 @@
-
+
diff --git a/tests_metricflow/snapshots/test_predicate_pushdown_optimizer.py/DataflowPlan/test_fill_nulls_time_spine_metric_with_post_agg_join_predicate_pushdown__dfp_0.xml b/tests_metricflow/snapshots/test_predicate_pushdown_optimizer.py/DataflowPlan/test_fill_nulls_time_spine_metric_with_post_agg_join_predicate_pushdown__dfp_0.xml
index 0ee0ae8bc5..079fa45fed 100644
--- a/tests_metricflow/snapshots/test_predicate_pushdown_optimizer.py/DataflowPlan/test_fill_nulls_time_spine_metric_with_post_agg_join_predicate_pushdown__dfp_0.xml
+++ b/tests_metricflow/snapshots/test_predicate_pushdown_optimizer.py/DataflowPlan/test_fill_nulls_time_spine_metric_with_post_agg_join_predicate_pushdown__dfp_0.xml
@@ -107,6 +107,7 @@
+
@@ -299,6 +300,7 @@
+
diff --git a/tests_metricflow/snapshots/test_predicate_pushdown_optimizer.py/DataflowPlan/test_fill_nulls_time_spine_metric_with_post_agg_join_predicate_pushdown__dfpo_0.xml b/tests_metricflow/snapshots/test_predicate_pushdown_optimizer.py/DataflowPlan/test_fill_nulls_time_spine_metric_with_post_agg_join_predicate_pushdown__dfpo_0.xml
index 279c2d2a35..a63d20297c 100644
--- a/tests_metricflow/snapshots/test_predicate_pushdown_optimizer.py/DataflowPlan/test_fill_nulls_time_spine_metric_with_post_agg_join_predicate_pushdown__dfpo_0.xml
+++ b/tests_metricflow/snapshots/test_predicate_pushdown_optimizer.py/DataflowPlan/test_fill_nulls_time_spine_metric_with_post_agg_join_predicate_pushdown__dfpo_0.xml
@@ -79,7 +79,7 @@
-
+
@@ -107,6 +107,7 @@
+
@@ -120,151 +121,120 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -310,7 +280,7 @@
-
+
@@ -338,6 +308,7 @@
+
@@ -353,7 +324,7 @@
-
+
diff --git a/tests_metricflow/snapshots/test_predicate_pushdown_optimizer.py/DataflowPlan/test_offset_metric_predicate_pushdown__dfpo_0.xml b/tests_metricflow/snapshots/test_predicate_pushdown_optimizer.py/DataflowPlan/test_offset_metric_predicate_pushdown__dfpo_0.xml
index 8aaee15d84..6e0d5568ef 100644
--- a/tests_metricflow/snapshots/test_predicate_pushdown_optimizer.py/DataflowPlan/test_offset_metric_predicate_pushdown__dfpo_0.xml
+++ b/tests_metricflow/snapshots/test_predicate_pushdown_optimizer.py/DataflowPlan/test_offset_metric_predicate_pushdown__dfpo_0.xml
@@ -92,151 +92,118 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -296,7 +263,7 @@
-
+
diff --git a/tests_metricflow/snapshots/test_predicate_pushdown_optimizer.py/DataflowPlan/test_simple_join_categorical_pushdown__dfpo_0.xml b/tests_metricflow/snapshots/test_predicate_pushdown_optimizer.py/DataflowPlan/test_simple_join_categorical_pushdown__dfpo_0.xml
index cb9a54f4fe..b7d660433e 100644
--- a/tests_metricflow/snapshots/test_predicate_pushdown_optimizer.py/DataflowPlan/test_simple_join_categorical_pushdown__dfpo_0.xml
+++ b/tests_metricflow/snapshots/test_predicate_pushdown_optimizer.py/DataflowPlan/test_simple_join_categorical_pushdown__dfpo_0.xml
@@ -50,141 +50,103 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/BigQuery/test_different_filters_on_same_measure_source_categorical_dimension__plan0_optimized.sql b/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/BigQuery/test_different_filters_on_same_measure_source_categorical_dimension__plan0_optimized.sql
index 4204d2ffe1..2eceb11e8d 100644
--- a/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/BigQuery/test_different_filters_on_same_measure_source_categorical_dimension__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/BigQuery/test_different_filters_on_same_measure_source_categorical_dimension__plan0_optimized.sql
@@ -5,11 +5,12 @@ SELECT
FROM (
-- Combine Aggregated Outputs
SELECT
- COALESCE(subq_20.metric_time__day, subq_25.metric_time__day) AS metric_time__day
- , MAX(subq_20.average_booking_value) AS average_booking_value
- , MAX(subq_25.max_booking_value) AS max_booking_value
+ COALESCE(subq_19.metric_time__day, subq_24.metric_time__day) AS metric_time__day
+ , MAX(subq_19.average_booking_value) AS average_booking_value
+ , MAX(subq_24.max_booking_value) AS max_booking_value
FROM (
-- Constrain Output with WHERE
+ -- Pass Only Elements: ['average_booking_value', 'booking__is_instant', 'metric_time__day']
-- Pass Only Elements: ['average_booking_value', 'metric_time__day']
-- Aggregate Measures
-- Compute Metrics via Expressions
@@ -17,27 +18,18 @@ FROM (
metric_time__day
, AVG(average_booking_value) AS average_booking_value
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['average_booking_value', 'booking__is_instant', 'metric_time__day']
+ -- Read Elements From Semantic Model 'bookings_source'
+ -- Metric Time Dimension 'ds'
SELECT
- metric_time__day
- , booking__is_instant
- , average_booking_value
- FROM (
- -- Read Elements From Semantic Model 'bookings_source'
- -- Metric Time Dimension 'ds'
- SELECT
- DATETIME_TRUNC(ds, day) AS metric_time__day
- , is_instant AS booking__is_instant
- , booking_value AS average_booking_value
- FROM ***************************.fct_bookings bookings_source_src_28000
- ) subq_14
- WHERE booking__is_instant
- ) subq_16
+ DATETIME_TRUNC(ds, day) AS metric_time__day
+ , is_instant AS booking__is_instant
+ , booking_value AS average_booking_value
+ FROM ***************************.fct_bookings bookings_source_src_28000
+ ) subq_14
WHERE booking__is_instant
GROUP BY
metric_time__day
- ) subq_20
+ ) subq_19
FULL OUTER JOIN (
-- Read Elements From Semantic Model 'bookings_source'
-- Metric Time Dimension 'ds'
@@ -50,9 +42,9 @@ FROM (
FROM ***************************.fct_bookings bookings_source_src_28000
GROUP BY
metric_time__day
- ) subq_25
+ ) subq_24
ON
- subq_20.metric_time__day = subq_25.metric_time__day
+ subq_19.metric_time__day = subq_24.metric_time__day
GROUP BY
metric_time__day
-) subq_26
+) subq_25
diff --git a/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/BigQuery/test_multiple_categorical_dimension_pushdown__plan0_optimized.sql b/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/BigQuery/test_multiple_categorical_dimension_pushdown__plan0_optimized.sql
index a35b4c236f..106db96ed1 100644
--- a/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/BigQuery/test_multiple_categorical_dimension_pushdown__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/BigQuery/test_multiple_categorical_dimension_pushdown__plan0_optimized.sql
@@ -1,43 +1,32 @@
--- Constrain Output with WHERE
+-- Join Standard Outputs
+-- Pass Only Elements: ['listings', 'user__home_state_latest', 'listing__is_lux_latest', 'listing__capacity_latest']
-- Pass Only Elements: ['listings', 'user__home_state_latest']
-- Aggregate Measures
-- Compute Metrics via Expressions
SELECT
- user__home_state_latest
- , SUM(listings) AS listings
+ users_latest_src_28000.home_state_latest AS user__home_state_latest
+ , SUM(subq_13.listings) AS listings
FROM (
- -- Join Standard Outputs
- -- Pass Only Elements: ['listings', 'user__home_state_latest', 'listing__is_lux_latest', 'listing__capacity_latest']
+ -- Constrain Output with WHERE
+ -- Pass Only Elements: ['listings', 'listing__is_lux_latest', 'listing__capacity_latest', 'user']
SELECT
- subq_13.listing__is_lux_latest AS listing__is_lux_latest
- , subq_13.listing__capacity_latest AS listing__capacity_latest
- , users_latest_src_28000.home_state_latest AS user__home_state_latest
- , subq_13.listings AS listings
+ subq_11.user
+ , listings
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['listings', 'listing__is_lux_latest', 'listing__capacity_latest', 'user']
+ -- Read Elements From Semantic Model 'listings_latest'
+ -- Metric Time Dimension 'ds'
SELECT
- subq_11.user
- , listing__is_lux_latest
- , listing__capacity_latest
- , listings
- FROM (
- -- Read Elements From Semantic Model 'listings_latest'
- -- Metric Time Dimension 'ds'
- SELECT
- user_id AS user
- , is_lux AS listing__is_lux_latest
- , capacity AS listing__capacity_latest
- , 1 AS listings
- FROM ***************************.dim_listings_latest listings_latest_src_28000
- ) subq_11
- WHERE listing__is_lux_latest OR listing__capacity_latest > 4
- ) subq_13
- LEFT OUTER JOIN
- ***************************.dim_users_latest users_latest_src_28000
- ON
- subq_13.user = users_latest_src_28000.user_id
-) subq_17
-WHERE listing__is_lux_latest OR listing__capacity_latest > 4
+ user_id AS user
+ , is_lux AS listing__is_lux_latest
+ , capacity AS listing__capacity_latest
+ , 1 AS listings
+ FROM ***************************.dim_listings_latest listings_latest_src_28000
+ ) subq_11
+ WHERE listing__is_lux_latest OR listing__capacity_latest > 4
+) subq_13
+LEFT OUTER JOIN
+ ***************************.dim_users_latest users_latest_src_28000
+ON
+ subq_13.user = users_latest_src_28000.user_id
GROUP BY
user__home_state_latest
diff --git a/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/BigQuery/test_single_categorical_dimension_pushdown__plan0_optimized.sql b/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/BigQuery/test_single_categorical_dimension_pushdown__plan0_optimized.sql
index 73800fe828..c189a92ec9 100644
--- a/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/BigQuery/test_single_categorical_dimension_pushdown__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/BigQuery/test_single_categorical_dimension_pushdown__plan0_optimized.sql
@@ -1,40 +1,31 @@
--- Constrain Output with WHERE
+-- Join Standard Outputs
+-- Pass Only Elements: ['bookings', 'listing__country_latest', 'booking__is_instant']
-- Pass Only Elements: ['bookings', 'listing__country_latest']
-- Aggregate Measures
-- Compute Metrics via Expressions
SELECT
- listing__country_latest
- , SUM(bookings) AS bookings
+ listings_latest_src_28000.country AS listing__country_latest
+ , SUM(subq_14.bookings) AS bookings
FROM (
- -- Join Standard Outputs
- -- Pass Only Elements: ['bookings', 'listing__country_latest', 'booking__is_instant']
+ -- Constrain Output with WHERE
+ -- Pass Only Elements: ['bookings', 'booking__is_instant', 'listing']
SELECT
- subq_14.booking__is_instant AS booking__is_instant
- , listings_latest_src_28000.country AS listing__country_latest
- , subq_14.bookings AS bookings
+ listing
+ , bookings
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['bookings', 'booking__is_instant', 'listing']
+ -- Read Elements From Semantic Model 'bookings_source'
+ -- Metric Time Dimension 'ds'
SELECT
- listing
- , booking__is_instant
- , bookings
- FROM (
- -- Read Elements From Semantic Model 'bookings_source'
- -- Metric Time Dimension 'ds'
- SELECT
- listing_id AS listing
- , is_instant AS booking__is_instant
- , 1 AS bookings
- FROM ***************************.fct_bookings bookings_source_src_28000
- ) subq_12
- WHERE booking__is_instant
- ) subq_14
- LEFT OUTER JOIN
- ***************************.dim_listings_latest listings_latest_src_28000
- ON
- subq_14.listing = listings_latest_src_28000.listing_id
-) subq_19
-WHERE booking__is_instant
+ listing_id AS listing
+ , is_instant AS booking__is_instant
+ , 1 AS bookings
+ FROM ***************************.fct_bookings bookings_source_src_28000
+ ) subq_12
+ WHERE booking__is_instant
+) subq_14
+LEFT OUTER JOIN
+ ***************************.dim_listings_latest listings_latest_src_28000
+ON
+ subq_14.listing = listings_latest_src_28000.listing_id
GROUP BY
listing__country_latest
diff --git a/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/Databricks/test_different_filters_on_same_measure_source_categorical_dimension__plan0_optimized.sql b/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/Databricks/test_different_filters_on_same_measure_source_categorical_dimension__plan0_optimized.sql
index 4e02914645..e2a4b4328a 100644
--- a/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/Databricks/test_different_filters_on_same_measure_source_categorical_dimension__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/Databricks/test_different_filters_on_same_measure_source_categorical_dimension__plan0_optimized.sql
@@ -5,11 +5,12 @@ SELECT
FROM (
-- Combine Aggregated Outputs
SELECT
- COALESCE(subq_20.metric_time__day, subq_25.metric_time__day) AS metric_time__day
- , MAX(subq_20.average_booking_value) AS average_booking_value
- , MAX(subq_25.max_booking_value) AS max_booking_value
+ COALESCE(subq_19.metric_time__day, subq_24.metric_time__day) AS metric_time__day
+ , MAX(subq_19.average_booking_value) AS average_booking_value
+ , MAX(subq_24.max_booking_value) AS max_booking_value
FROM (
-- Constrain Output with WHERE
+ -- Pass Only Elements: ['average_booking_value', 'booking__is_instant', 'metric_time__day']
-- Pass Only Elements: ['average_booking_value', 'metric_time__day']
-- Aggregate Measures
-- Compute Metrics via Expressions
@@ -17,27 +18,18 @@ FROM (
metric_time__day
, AVG(average_booking_value) AS average_booking_value
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['average_booking_value', 'booking__is_instant', 'metric_time__day']
+ -- Read Elements From Semantic Model 'bookings_source'
+ -- Metric Time Dimension 'ds'
SELECT
- metric_time__day
- , booking__is_instant
- , average_booking_value
- FROM (
- -- Read Elements From Semantic Model 'bookings_source'
- -- Metric Time Dimension 'ds'
- SELECT
- DATE_TRUNC('day', ds) AS metric_time__day
- , is_instant AS booking__is_instant
- , booking_value AS average_booking_value
- FROM ***************************.fct_bookings bookings_source_src_28000
- ) subq_14
- WHERE booking__is_instant
- ) subq_16
+ DATE_TRUNC('day', ds) AS metric_time__day
+ , is_instant AS booking__is_instant
+ , booking_value AS average_booking_value
+ FROM ***************************.fct_bookings bookings_source_src_28000
+ ) subq_14
WHERE booking__is_instant
GROUP BY
metric_time__day
- ) subq_20
+ ) subq_19
FULL OUTER JOIN (
-- Read Elements From Semantic Model 'bookings_source'
-- Metric Time Dimension 'ds'
@@ -50,9 +42,9 @@ FROM (
FROM ***************************.fct_bookings bookings_source_src_28000
GROUP BY
DATE_TRUNC('day', ds)
- ) subq_25
+ ) subq_24
ON
- subq_20.metric_time__day = subq_25.metric_time__day
+ subq_19.metric_time__day = subq_24.metric_time__day
GROUP BY
- COALESCE(subq_20.metric_time__day, subq_25.metric_time__day)
-) subq_26
+ COALESCE(subq_19.metric_time__day, subq_24.metric_time__day)
+) subq_25
diff --git a/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/Databricks/test_multiple_categorical_dimension_pushdown__plan0_optimized.sql b/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/Databricks/test_multiple_categorical_dimension_pushdown__plan0_optimized.sql
index a35b4c236f..7dadffd239 100644
--- a/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/Databricks/test_multiple_categorical_dimension_pushdown__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/Databricks/test_multiple_categorical_dimension_pushdown__plan0_optimized.sql
@@ -1,43 +1,32 @@
--- Constrain Output with WHERE
+-- Join Standard Outputs
+-- Pass Only Elements: ['listings', 'user__home_state_latest', 'listing__is_lux_latest', 'listing__capacity_latest']
-- Pass Only Elements: ['listings', 'user__home_state_latest']
-- Aggregate Measures
-- Compute Metrics via Expressions
SELECT
- user__home_state_latest
- , SUM(listings) AS listings
+ users_latest_src_28000.home_state_latest AS user__home_state_latest
+ , SUM(subq_13.listings) AS listings
FROM (
- -- Join Standard Outputs
- -- Pass Only Elements: ['listings', 'user__home_state_latest', 'listing__is_lux_latest', 'listing__capacity_latest']
+ -- Constrain Output with WHERE
+ -- Pass Only Elements: ['listings', 'listing__is_lux_latest', 'listing__capacity_latest', 'user']
SELECT
- subq_13.listing__is_lux_latest AS listing__is_lux_latest
- , subq_13.listing__capacity_latest AS listing__capacity_latest
- , users_latest_src_28000.home_state_latest AS user__home_state_latest
- , subq_13.listings AS listings
+ subq_11.user
+ , listings
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['listings', 'listing__is_lux_latest', 'listing__capacity_latest', 'user']
+ -- Read Elements From Semantic Model 'listings_latest'
+ -- Metric Time Dimension 'ds'
SELECT
- subq_11.user
- , listing__is_lux_latest
- , listing__capacity_latest
- , listings
- FROM (
- -- Read Elements From Semantic Model 'listings_latest'
- -- Metric Time Dimension 'ds'
- SELECT
- user_id AS user
- , is_lux AS listing__is_lux_latest
- , capacity AS listing__capacity_latest
- , 1 AS listings
- FROM ***************************.dim_listings_latest listings_latest_src_28000
- ) subq_11
- WHERE listing__is_lux_latest OR listing__capacity_latest > 4
- ) subq_13
- LEFT OUTER JOIN
- ***************************.dim_users_latest users_latest_src_28000
- ON
- subq_13.user = users_latest_src_28000.user_id
-) subq_17
-WHERE listing__is_lux_latest OR listing__capacity_latest > 4
+ user_id AS user
+ , is_lux AS listing__is_lux_latest
+ , capacity AS listing__capacity_latest
+ , 1 AS listings
+ FROM ***************************.dim_listings_latest listings_latest_src_28000
+ ) subq_11
+ WHERE listing__is_lux_latest OR listing__capacity_latest > 4
+) subq_13
+LEFT OUTER JOIN
+ ***************************.dim_users_latest users_latest_src_28000
+ON
+ subq_13.user = users_latest_src_28000.user_id
GROUP BY
- user__home_state_latest
+ users_latest_src_28000.home_state_latest
diff --git a/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/Databricks/test_single_categorical_dimension_pushdown__plan0_optimized.sql b/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/Databricks/test_single_categorical_dimension_pushdown__plan0_optimized.sql
index 73800fe828..d243d87372 100644
--- a/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/Databricks/test_single_categorical_dimension_pushdown__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/Databricks/test_single_categorical_dimension_pushdown__plan0_optimized.sql
@@ -1,40 +1,31 @@
--- Constrain Output with WHERE
+-- Join Standard Outputs
+-- Pass Only Elements: ['bookings', 'listing__country_latest', 'booking__is_instant']
-- Pass Only Elements: ['bookings', 'listing__country_latest']
-- Aggregate Measures
-- Compute Metrics via Expressions
SELECT
- listing__country_latest
- , SUM(bookings) AS bookings
+ listings_latest_src_28000.country AS listing__country_latest
+ , SUM(subq_14.bookings) AS bookings
FROM (
- -- Join Standard Outputs
- -- Pass Only Elements: ['bookings', 'listing__country_latest', 'booking__is_instant']
+ -- Constrain Output with WHERE
+ -- Pass Only Elements: ['bookings', 'booking__is_instant', 'listing']
SELECT
- subq_14.booking__is_instant AS booking__is_instant
- , listings_latest_src_28000.country AS listing__country_latest
- , subq_14.bookings AS bookings
+ listing
+ , bookings
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['bookings', 'booking__is_instant', 'listing']
+ -- Read Elements From Semantic Model 'bookings_source'
+ -- Metric Time Dimension 'ds'
SELECT
- listing
- , booking__is_instant
- , bookings
- FROM (
- -- Read Elements From Semantic Model 'bookings_source'
- -- Metric Time Dimension 'ds'
- SELECT
- listing_id AS listing
- , is_instant AS booking__is_instant
- , 1 AS bookings
- FROM ***************************.fct_bookings bookings_source_src_28000
- ) subq_12
- WHERE booking__is_instant
- ) subq_14
- LEFT OUTER JOIN
- ***************************.dim_listings_latest listings_latest_src_28000
- ON
- subq_14.listing = listings_latest_src_28000.listing_id
-) subq_19
-WHERE booking__is_instant
+ listing_id AS listing
+ , is_instant AS booking__is_instant
+ , 1 AS bookings
+ FROM ***************************.fct_bookings bookings_source_src_28000
+ ) subq_12
+ WHERE booking__is_instant
+) subq_14
+LEFT OUTER JOIN
+ ***************************.dim_listings_latest listings_latest_src_28000
+ON
+ subq_14.listing = listings_latest_src_28000.listing_id
GROUP BY
- listing__country_latest
+ listings_latest_src_28000.country
diff --git a/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/DuckDB/test_different_filters_on_same_measure_source_categorical_dimension__plan0_optimized.sql b/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/DuckDB/test_different_filters_on_same_measure_source_categorical_dimension__plan0_optimized.sql
index 4e02914645..e2a4b4328a 100644
--- a/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/DuckDB/test_different_filters_on_same_measure_source_categorical_dimension__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/DuckDB/test_different_filters_on_same_measure_source_categorical_dimension__plan0_optimized.sql
@@ -5,11 +5,12 @@ SELECT
FROM (
-- Combine Aggregated Outputs
SELECT
- COALESCE(subq_20.metric_time__day, subq_25.metric_time__day) AS metric_time__day
- , MAX(subq_20.average_booking_value) AS average_booking_value
- , MAX(subq_25.max_booking_value) AS max_booking_value
+ COALESCE(subq_19.metric_time__day, subq_24.metric_time__day) AS metric_time__day
+ , MAX(subq_19.average_booking_value) AS average_booking_value
+ , MAX(subq_24.max_booking_value) AS max_booking_value
FROM (
-- Constrain Output with WHERE
+ -- Pass Only Elements: ['average_booking_value', 'booking__is_instant', 'metric_time__day']
-- Pass Only Elements: ['average_booking_value', 'metric_time__day']
-- Aggregate Measures
-- Compute Metrics via Expressions
@@ -17,27 +18,18 @@ FROM (
metric_time__day
, AVG(average_booking_value) AS average_booking_value
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['average_booking_value', 'booking__is_instant', 'metric_time__day']
+ -- Read Elements From Semantic Model 'bookings_source'
+ -- Metric Time Dimension 'ds'
SELECT
- metric_time__day
- , booking__is_instant
- , average_booking_value
- FROM (
- -- Read Elements From Semantic Model 'bookings_source'
- -- Metric Time Dimension 'ds'
- SELECT
- DATE_TRUNC('day', ds) AS metric_time__day
- , is_instant AS booking__is_instant
- , booking_value AS average_booking_value
- FROM ***************************.fct_bookings bookings_source_src_28000
- ) subq_14
- WHERE booking__is_instant
- ) subq_16
+ DATE_TRUNC('day', ds) AS metric_time__day
+ , is_instant AS booking__is_instant
+ , booking_value AS average_booking_value
+ FROM ***************************.fct_bookings bookings_source_src_28000
+ ) subq_14
WHERE booking__is_instant
GROUP BY
metric_time__day
- ) subq_20
+ ) subq_19
FULL OUTER JOIN (
-- Read Elements From Semantic Model 'bookings_source'
-- Metric Time Dimension 'ds'
@@ -50,9 +42,9 @@ FROM (
FROM ***************************.fct_bookings bookings_source_src_28000
GROUP BY
DATE_TRUNC('day', ds)
- ) subq_25
+ ) subq_24
ON
- subq_20.metric_time__day = subq_25.metric_time__day
+ subq_19.metric_time__day = subq_24.metric_time__day
GROUP BY
- COALESCE(subq_20.metric_time__day, subq_25.metric_time__day)
-) subq_26
+ COALESCE(subq_19.metric_time__day, subq_24.metric_time__day)
+) subq_25
diff --git a/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/DuckDB/test_multiple_categorical_dimension_pushdown__plan0_optimized.sql b/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/DuckDB/test_multiple_categorical_dimension_pushdown__plan0_optimized.sql
index a35b4c236f..7dadffd239 100644
--- a/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/DuckDB/test_multiple_categorical_dimension_pushdown__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/DuckDB/test_multiple_categorical_dimension_pushdown__plan0_optimized.sql
@@ -1,43 +1,32 @@
--- Constrain Output with WHERE
+-- Join Standard Outputs
+-- Pass Only Elements: ['listings', 'user__home_state_latest', 'listing__is_lux_latest', 'listing__capacity_latest']
-- Pass Only Elements: ['listings', 'user__home_state_latest']
-- Aggregate Measures
-- Compute Metrics via Expressions
SELECT
- user__home_state_latest
- , SUM(listings) AS listings
+ users_latest_src_28000.home_state_latest AS user__home_state_latest
+ , SUM(subq_13.listings) AS listings
FROM (
- -- Join Standard Outputs
- -- Pass Only Elements: ['listings', 'user__home_state_latest', 'listing__is_lux_latest', 'listing__capacity_latest']
+ -- Constrain Output with WHERE
+ -- Pass Only Elements: ['listings', 'listing__is_lux_latest', 'listing__capacity_latest', 'user']
SELECT
- subq_13.listing__is_lux_latest AS listing__is_lux_latest
- , subq_13.listing__capacity_latest AS listing__capacity_latest
- , users_latest_src_28000.home_state_latest AS user__home_state_latest
- , subq_13.listings AS listings
+ subq_11.user
+ , listings
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['listings', 'listing__is_lux_latest', 'listing__capacity_latest', 'user']
+ -- Read Elements From Semantic Model 'listings_latest'
+ -- Metric Time Dimension 'ds'
SELECT
- subq_11.user
- , listing__is_lux_latest
- , listing__capacity_latest
- , listings
- FROM (
- -- Read Elements From Semantic Model 'listings_latest'
- -- Metric Time Dimension 'ds'
- SELECT
- user_id AS user
- , is_lux AS listing__is_lux_latest
- , capacity AS listing__capacity_latest
- , 1 AS listings
- FROM ***************************.dim_listings_latest listings_latest_src_28000
- ) subq_11
- WHERE listing__is_lux_latest OR listing__capacity_latest > 4
- ) subq_13
- LEFT OUTER JOIN
- ***************************.dim_users_latest users_latest_src_28000
- ON
- subq_13.user = users_latest_src_28000.user_id
-) subq_17
-WHERE listing__is_lux_latest OR listing__capacity_latest > 4
+ user_id AS user
+ , is_lux AS listing__is_lux_latest
+ , capacity AS listing__capacity_latest
+ , 1 AS listings
+ FROM ***************************.dim_listings_latest listings_latest_src_28000
+ ) subq_11
+ WHERE listing__is_lux_latest OR listing__capacity_latest > 4
+) subq_13
+LEFT OUTER JOIN
+ ***************************.dim_users_latest users_latest_src_28000
+ON
+ subq_13.user = users_latest_src_28000.user_id
GROUP BY
- user__home_state_latest
+ users_latest_src_28000.home_state_latest
diff --git a/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/DuckDB/test_single_categorical_dimension_pushdown__plan0_optimized.sql b/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/DuckDB/test_single_categorical_dimension_pushdown__plan0_optimized.sql
index 73800fe828..d243d87372 100644
--- a/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/DuckDB/test_single_categorical_dimension_pushdown__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/DuckDB/test_single_categorical_dimension_pushdown__plan0_optimized.sql
@@ -1,40 +1,31 @@
--- Constrain Output with WHERE
+-- Join Standard Outputs
+-- Pass Only Elements: ['bookings', 'listing__country_latest', 'booking__is_instant']
-- Pass Only Elements: ['bookings', 'listing__country_latest']
-- Aggregate Measures
-- Compute Metrics via Expressions
SELECT
- listing__country_latest
- , SUM(bookings) AS bookings
+ listings_latest_src_28000.country AS listing__country_latest
+ , SUM(subq_14.bookings) AS bookings
FROM (
- -- Join Standard Outputs
- -- Pass Only Elements: ['bookings', 'listing__country_latest', 'booking__is_instant']
+ -- Constrain Output with WHERE
+ -- Pass Only Elements: ['bookings', 'booking__is_instant', 'listing']
SELECT
- subq_14.booking__is_instant AS booking__is_instant
- , listings_latest_src_28000.country AS listing__country_latest
- , subq_14.bookings AS bookings
+ listing
+ , bookings
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['bookings', 'booking__is_instant', 'listing']
+ -- Read Elements From Semantic Model 'bookings_source'
+ -- Metric Time Dimension 'ds'
SELECT
- listing
- , booking__is_instant
- , bookings
- FROM (
- -- Read Elements From Semantic Model 'bookings_source'
- -- Metric Time Dimension 'ds'
- SELECT
- listing_id AS listing
- , is_instant AS booking__is_instant
- , 1 AS bookings
- FROM ***************************.fct_bookings bookings_source_src_28000
- ) subq_12
- WHERE booking__is_instant
- ) subq_14
- LEFT OUTER JOIN
- ***************************.dim_listings_latest listings_latest_src_28000
- ON
- subq_14.listing = listings_latest_src_28000.listing_id
-) subq_19
-WHERE booking__is_instant
+ listing_id AS listing
+ , is_instant AS booking__is_instant
+ , 1 AS bookings
+ FROM ***************************.fct_bookings bookings_source_src_28000
+ ) subq_12
+ WHERE booking__is_instant
+) subq_14
+LEFT OUTER JOIN
+ ***************************.dim_listings_latest listings_latest_src_28000
+ON
+ subq_14.listing = listings_latest_src_28000.listing_id
GROUP BY
- listing__country_latest
+ listings_latest_src_28000.country
diff --git a/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/Postgres/test_different_filters_on_same_measure_source_categorical_dimension__plan0_optimized.sql b/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/Postgres/test_different_filters_on_same_measure_source_categorical_dimension__plan0_optimized.sql
index 2452e75012..4eef6d0c9d 100644
--- a/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/Postgres/test_different_filters_on_same_measure_source_categorical_dimension__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/Postgres/test_different_filters_on_same_measure_source_categorical_dimension__plan0_optimized.sql
@@ -5,11 +5,12 @@ SELECT
FROM (
-- Combine Aggregated Outputs
SELECT
- COALESCE(subq_20.metric_time__day, subq_25.metric_time__day) AS metric_time__day
- , MAX(subq_20.average_booking_value) AS average_booking_value
- , MAX(subq_25.max_booking_value) AS max_booking_value
+ COALESCE(subq_19.metric_time__day, subq_24.metric_time__day) AS metric_time__day
+ , MAX(subq_19.average_booking_value) AS average_booking_value
+ , MAX(subq_24.max_booking_value) AS max_booking_value
FROM (
-- Constrain Output with WHERE
+ -- Pass Only Elements: ['average_booking_value', 'booking__is_instant', 'metric_time__day']
-- Pass Only Elements: ['average_booking_value', 'metric_time__day']
-- Aggregate Measures
-- Compute Metrics via Expressions
@@ -17,27 +18,18 @@ FROM (
metric_time__day
, AVG(average_booking_value) AS average_booking_value
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['average_booking_value', 'booking__is_instant', 'metric_time__day']
+ -- Read Elements From Semantic Model 'bookings_source'
+ -- Metric Time Dimension 'ds'
SELECT
- metric_time__day
- , booking__is_instant
- , average_booking_value
- FROM (
- -- Read Elements From Semantic Model 'bookings_source'
- -- Metric Time Dimension 'ds'
- SELECT
- DATE_TRUNC('day', ds) AS metric_time__day
- , is_instant AS booking__is_instant
- , booking_value AS average_booking_value
- FROM ***************************.fct_bookings bookings_source_src_28000
- ) subq_14
- WHERE booking__is_instant
- ) subq_16
+ DATE_TRUNC('day', ds) AS metric_time__day
+ , is_instant AS booking__is_instant
+ , booking_value AS average_booking_value
+ FROM ***************************.fct_bookings bookings_source_src_28000
+ ) subq_14
WHERE booking__is_instant
GROUP BY
metric_time__day
- ) subq_20
+ ) subq_19
FULL OUTER JOIN (
-- Read Elements From Semantic Model 'bookings_source'
-- Metric Time Dimension 'ds'
@@ -50,9 +42,9 @@ FROM (
FROM ***************************.fct_bookings bookings_source_src_28000
GROUP BY
DATE_TRUNC('day', ds)
- ) subq_25
+ ) subq_24
ON
- subq_20.metric_time__day = subq_25.metric_time__day
+ subq_19.metric_time__day = subq_24.metric_time__day
GROUP BY
- COALESCE(subq_20.metric_time__day, subq_25.metric_time__day)
-) subq_26
+ COALESCE(subq_19.metric_time__day, subq_24.metric_time__day)
+) subq_25
diff --git a/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/Postgres/test_multiple_categorical_dimension_pushdown__plan0_optimized.sql b/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/Postgres/test_multiple_categorical_dimension_pushdown__plan0_optimized.sql
index a35b4c236f..7dadffd239 100644
--- a/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/Postgres/test_multiple_categorical_dimension_pushdown__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/Postgres/test_multiple_categorical_dimension_pushdown__plan0_optimized.sql
@@ -1,43 +1,32 @@
--- Constrain Output with WHERE
+-- Join Standard Outputs
+-- Pass Only Elements: ['listings', 'user__home_state_latest', 'listing__is_lux_latest', 'listing__capacity_latest']
-- Pass Only Elements: ['listings', 'user__home_state_latest']
-- Aggregate Measures
-- Compute Metrics via Expressions
SELECT
- user__home_state_latest
- , SUM(listings) AS listings
+ users_latest_src_28000.home_state_latest AS user__home_state_latest
+ , SUM(subq_13.listings) AS listings
FROM (
- -- Join Standard Outputs
- -- Pass Only Elements: ['listings', 'user__home_state_latest', 'listing__is_lux_latest', 'listing__capacity_latest']
+ -- Constrain Output with WHERE
+ -- Pass Only Elements: ['listings', 'listing__is_lux_latest', 'listing__capacity_latest', 'user']
SELECT
- subq_13.listing__is_lux_latest AS listing__is_lux_latest
- , subq_13.listing__capacity_latest AS listing__capacity_latest
- , users_latest_src_28000.home_state_latest AS user__home_state_latest
- , subq_13.listings AS listings
+ subq_11.user
+ , listings
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['listings', 'listing__is_lux_latest', 'listing__capacity_latest', 'user']
+ -- Read Elements From Semantic Model 'listings_latest'
+ -- Metric Time Dimension 'ds'
SELECT
- subq_11.user
- , listing__is_lux_latest
- , listing__capacity_latest
- , listings
- FROM (
- -- Read Elements From Semantic Model 'listings_latest'
- -- Metric Time Dimension 'ds'
- SELECT
- user_id AS user
- , is_lux AS listing__is_lux_latest
- , capacity AS listing__capacity_latest
- , 1 AS listings
- FROM ***************************.dim_listings_latest listings_latest_src_28000
- ) subq_11
- WHERE listing__is_lux_latest OR listing__capacity_latest > 4
- ) subq_13
- LEFT OUTER JOIN
- ***************************.dim_users_latest users_latest_src_28000
- ON
- subq_13.user = users_latest_src_28000.user_id
-) subq_17
-WHERE listing__is_lux_latest OR listing__capacity_latest > 4
+ user_id AS user
+ , is_lux AS listing__is_lux_latest
+ , capacity AS listing__capacity_latest
+ , 1 AS listings
+ FROM ***************************.dim_listings_latest listings_latest_src_28000
+ ) subq_11
+ WHERE listing__is_lux_latest OR listing__capacity_latest > 4
+) subq_13
+LEFT OUTER JOIN
+ ***************************.dim_users_latest users_latest_src_28000
+ON
+ subq_13.user = users_latest_src_28000.user_id
GROUP BY
- user__home_state_latest
+ users_latest_src_28000.home_state_latest
diff --git a/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/Postgres/test_single_categorical_dimension_pushdown__plan0_optimized.sql b/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/Postgres/test_single_categorical_dimension_pushdown__plan0_optimized.sql
index 73800fe828..d243d87372 100644
--- a/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/Postgres/test_single_categorical_dimension_pushdown__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/Postgres/test_single_categorical_dimension_pushdown__plan0_optimized.sql
@@ -1,40 +1,31 @@
--- Constrain Output with WHERE
+-- Join Standard Outputs
+-- Pass Only Elements: ['bookings', 'listing__country_latest', 'booking__is_instant']
-- Pass Only Elements: ['bookings', 'listing__country_latest']
-- Aggregate Measures
-- Compute Metrics via Expressions
SELECT
- listing__country_latest
- , SUM(bookings) AS bookings
+ listings_latest_src_28000.country AS listing__country_latest
+ , SUM(subq_14.bookings) AS bookings
FROM (
- -- Join Standard Outputs
- -- Pass Only Elements: ['bookings', 'listing__country_latest', 'booking__is_instant']
+ -- Constrain Output with WHERE
+ -- Pass Only Elements: ['bookings', 'booking__is_instant', 'listing']
SELECT
- subq_14.booking__is_instant AS booking__is_instant
- , listings_latest_src_28000.country AS listing__country_latest
- , subq_14.bookings AS bookings
+ listing
+ , bookings
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['bookings', 'booking__is_instant', 'listing']
+ -- Read Elements From Semantic Model 'bookings_source'
+ -- Metric Time Dimension 'ds'
SELECT
- listing
- , booking__is_instant
- , bookings
- FROM (
- -- Read Elements From Semantic Model 'bookings_source'
- -- Metric Time Dimension 'ds'
- SELECT
- listing_id AS listing
- , is_instant AS booking__is_instant
- , 1 AS bookings
- FROM ***************************.fct_bookings bookings_source_src_28000
- ) subq_12
- WHERE booking__is_instant
- ) subq_14
- LEFT OUTER JOIN
- ***************************.dim_listings_latest listings_latest_src_28000
- ON
- subq_14.listing = listings_latest_src_28000.listing_id
-) subq_19
-WHERE booking__is_instant
+ listing_id AS listing
+ , is_instant AS booking__is_instant
+ , 1 AS bookings
+ FROM ***************************.fct_bookings bookings_source_src_28000
+ ) subq_12
+ WHERE booking__is_instant
+) subq_14
+LEFT OUTER JOIN
+ ***************************.dim_listings_latest listings_latest_src_28000
+ON
+ subq_14.listing = listings_latest_src_28000.listing_id
GROUP BY
- listing__country_latest
+ listings_latest_src_28000.country
diff --git a/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/Redshift/test_different_filters_on_same_measure_source_categorical_dimension__plan0_optimized.sql b/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/Redshift/test_different_filters_on_same_measure_source_categorical_dimension__plan0_optimized.sql
index 2452e75012..4eef6d0c9d 100644
--- a/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/Redshift/test_different_filters_on_same_measure_source_categorical_dimension__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/Redshift/test_different_filters_on_same_measure_source_categorical_dimension__plan0_optimized.sql
@@ -5,11 +5,12 @@ SELECT
FROM (
-- Combine Aggregated Outputs
SELECT
- COALESCE(subq_20.metric_time__day, subq_25.metric_time__day) AS metric_time__day
- , MAX(subq_20.average_booking_value) AS average_booking_value
- , MAX(subq_25.max_booking_value) AS max_booking_value
+ COALESCE(subq_19.metric_time__day, subq_24.metric_time__day) AS metric_time__day
+ , MAX(subq_19.average_booking_value) AS average_booking_value
+ , MAX(subq_24.max_booking_value) AS max_booking_value
FROM (
-- Constrain Output with WHERE
+ -- Pass Only Elements: ['average_booking_value', 'booking__is_instant', 'metric_time__day']
-- Pass Only Elements: ['average_booking_value', 'metric_time__day']
-- Aggregate Measures
-- Compute Metrics via Expressions
@@ -17,27 +18,18 @@ FROM (
metric_time__day
, AVG(average_booking_value) AS average_booking_value
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['average_booking_value', 'booking__is_instant', 'metric_time__day']
+ -- Read Elements From Semantic Model 'bookings_source'
+ -- Metric Time Dimension 'ds'
SELECT
- metric_time__day
- , booking__is_instant
- , average_booking_value
- FROM (
- -- Read Elements From Semantic Model 'bookings_source'
- -- Metric Time Dimension 'ds'
- SELECT
- DATE_TRUNC('day', ds) AS metric_time__day
- , is_instant AS booking__is_instant
- , booking_value AS average_booking_value
- FROM ***************************.fct_bookings bookings_source_src_28000
- ) subq_14
- WHERE booking__is_instant
- ) subq_16
+ DATE_TRUNC('day', ds) AS metric_time__day
+ , is_instant AS booking__is_instant
+ , booking_value AS average_booking_value
+ FROM ***************************.fct_bookings bookings_source_src_28000
+ ) subq_14
WHERE booking__is_instant
GROUP BY
metric_time__day
- ) subq_20
+ ) subq_19
FULL OUTER JOIN (
-- Read Elements From Semantic Model 'bookings_source'
-- Metric Time Dimension 'ds'
@@ -50,9 +42,9 @@ FROM (
FROM ***************************.fct_bookings bookings_source_src_28000
GROUP BY
DATE_TRUNC('day', ds)
- ) subq_25
+ ) subq_24
ON
- subq_20.metric_time__day = subq_25.metric_time__day
+ subq_19.metric_time__day = subq_24.metric_time__day
GROUP BY
- COALESCE(subq_20.metric_time__day, subq_25.metric_time__day)
-) subq_26
+ COALESCE(subq_19.metric_time__day, subq_24.metric_time__day)
+) subq_25
diff --git a/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/Redshift/test_multiple_categorical_dimension_pushdown__plan0_optimized.sql b/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/Redshift/test_multiple_categorical_dimension_pushdown__plan0_optimized.sql
index a35b4c236f..7dadffd239 100644
--- a/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/Redshift/test_multiple_categorical_dimension_pushdown__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/Redshift/test_multiple_categorical_dimension_pushdown__plan0_optimized.sql
@@ -1,43 +1,32 @@
--- Constrain Output with WHERE
+-- Join Standard Outputs
+-- Pass Only Elements: ['listings', 'user__home_state_latest', 'listing__is_lux_latest', 'listing__capacity_latest']
-- Pass Only Elements: ['listings', 'user__home_state_latest']
-- Aggregate Measures
-- Compute Metrics via Expressions
SELECT
- user__home_state_latest
- , SUM(listings) AS listings
+ users_latest_src_28000.home_state_latest AS user__home_state_latest
+ , SUM(subq_13.listings) AS listings
FROM (
- -- Join Standard Outputs
- -- Pass Only Elements: ['listings', 'user__home_state_latest', 'listing__is_lux_latest', 'listing__capacity_latest']
+ -- Constrain Output with WHERE
+ -- Pass Only Elements: ['listings', 'listing__is_lux_latest', 'listing__capacity_latest', 'user']
SELECT
- subq_13.listing__is_lux_latest AS listing__is_lux_latest
- , subq_13.listing__capacity_latest AS listing__capacity_latest
- , users_latest_src_28000.home_state_latest AS user__home_state_latest
- , subq_13.listings AS listings
+ subq_11.user
+ , listings
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['listings', 'listing__is_lux_latest', 'listing__capacity_latest', 'user']
+ -- Read Elements From Semantic Model 'listings_latest'
+ -- Metric Time Dimension 'ds'
SELECT
- subq_11.user
- , listing__is_lux_latest
- , listing__capacity_latest
- , listings
- FROM (
- -- Read Elements From Semantic Model 'listings_latest'
- -- Metric Time Dimension 'ds'
- SELECT
- user_id AS user
- , is_lux AS listing__is_lux_latest
- , capacity AS listing__capacity_latest
- , 1 AS listings
- FROM ***************************.dim_listings_latest listings_latest_src_28000
- ) subq_11
- WHERE listing__is_lux_latest OR listing__capacity_latest > 4
- ) subq_13
- LEFT OUTER JOIN
- ***************************.dim_users_latest users_latest_src_28000
- ON
- subq_13.user = users_latest_src_28000.user_id
-) subq_17
-WHERE listing__is_lux_latest OR listing__capacity_latest > 4
+ user_id AS user
+ , is_lux AS listing__is_lux_latest
+ , capacity AS listing__capacity_latest
+ , 1 AS listings
+ FROM ***************************.dim_listings_latest listings_latest_src_28000
+ ) subq_11
+ WHERE listing__is_lux_latest OR listing__capacity_latest > 4
+) subq_13
+LEFT OUTER JOIN
+ ***************************.dim_users_latest users_latest_src_28000
+ON
+ subq_13.user = users_latest_src_28000.user_id
GROUP BY
- user__home_state_latest
+ users_latest_src_28000.home_state_latest
diff --git a/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/Redshift/test_single_categorical_dimension_pushdown__plan0_optimized.sql b/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/Redshift/test_single_categorical_dimension_pushdown__plan0_optimized.sql
index 73800fe828..d243d87372 100644
--- a/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/Redshift/test_single_categorical_dimension_pushdown__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/Redshift/test_single_categorical_dimension_pushdown__plan0_optimized.sql
@@ -1,40 +1,31 @@
--- Constrain Output with WHERE
+-- Join Standard Outputs
+-- Pass Only Elements: ['bookings', 'listing__country_latest', 'booking__is_instant']
-- Pass Only Elements: ['bookings', 'listing__country_latest']
-- Aggregate Measures
-- Compute Metrics via Expressions
SELECT
- listing__country_latest
- , SUM(bookings) AS bookings
+ listings_latest_src_28000.country AS listing__country_latest
+ , SUM(subq_14.bookings) AS bookings
FROM (
- -- Join Standard Outputs
- -- Pass Only Elements: ['bookings', 'listing__country_latest', 'booking__is_instant']
+ -- Constrain Output with WHERE
+ -- Pass Only Elements: ['bookings', 'booking__is_instant', 'listing']
SELECT
- subq_14.booking__is_instant AS booking__is_instant
- , listings_latest_src_28000.country AS listing__country_latest
- , subq_14.bookings AS bookings
+ listing
+ , bookings
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['bookings', 'booking__is_instant', 'listing']
+ -- Read Elements From Semantic Model 'bookings_source'
+ -- Metric Time Dimension 'ds'
SELECT
- listing
- , booking__is_instant
- , bookings
- FROM (
- -- Read Elements From Semantic Model 'bookings_source'
- -- Metric Time Dimension 'ds'
- SELECT
- listing_id AS listing
- , is_instant AS booking__is_instant
- , 1 AS bookings
- FROM ***************************.fct_bookings bookings_source_src_28000
- ) subq_12
- WHERE booking__is_instant
- ) subq_14
- LEFT OUTER JOIN
- ***************************.dim_listings_latest listings_latest_src_28000
- ON
- subq_14.listing = listings_latest_src_28000.listing_id
-) subq_19
-WHERE booking__is_instant
+ listing_id AS listing
+ , is_instant AS booking__is_instant
+ , 1 AS bookings
+ FROM ***************************.fct_bookings bookings_source_src_28000
+ ) subq_12
+ WHERE booking__is_instant
+) subq_14
+LEFT OUTER JOIN
+ ***************************.dim_listings_latest listings_latest_src_28000
+ON
+ subq_14.listing = listings_latest_src_28000.listing_id
GROUP BY
- listing__country_latest
+ listings_latest_src_28000.country
diff --git a/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/Snowflake/test_different_filters_on_same_measure_source_categorical_dimension__plan0_optimized.sql b/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/Snowflake/test_different_filters_on_same_measure_source_categorical_dimension__plan0_optimized.sql
index 4e02914645..e2a4b4328a 100644
--- a/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/Snowflake/test_different_filters_on_same_measure_source_categorical_dimension__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/Snowflake/test_different_filters_on_same_measure_source_categorical_dimension__plan0_optimized.sql
@@ -5,11 +5,12 @@ SELECT
FROM (
-- Combine Aggregated Outputs
SELECT
- COALESCE(subq_20.metric_time__day, subq_25.metric_time__day) AS metric_time__day
- , MAX(subq_20.average_booking_value) AS average_booking_value
- , MAX(subq_25.max_booking_value) AS max_booking_value
+ COALESCE(subq_19.metric_time__day, subq_24.metric_time__day) AS metric_time__day
+ , MAX(subq_19.average_booking_value) AS average_booking_value
+ , MAX(subq_24.max_booking_value) AS max_booking_value
FROM (
-- Constrain Output with WHERE
+ -- Pass Only Elements: ['average_booking_value', 'booking__is_instant', 'metric_time__day']
-- Pass Only Elements: ['average_booking_value', 'metric_time__day']
-- Aggregate Measures
-- Compute Metrics via Expressions
@@ -17,27 +18,18 @@ FROM (
metric_time__day
, AVG(average_booking_value) AS average_booking_value
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['average_booking_value', 'booking__is_instant', 'metric_time__day']
+ -- Read Elements From Semantic Model 'bookings_source'
+ -- Metric Time Dimension 'ds'
SELECT
- metric_time__day
- , booking__is_instant
- , average_booking_value
- FROM (
- -- Read Elements From Semantic Model 'bookings_source'
- -- Metric Time Dimension 'ds'
- SELECT
- DATE_TRUNC('day', ds) AS metric_time__day
- , is_instant AS booking__is_instant
- , booking_value AS average_booking_value
- FROM ***************************.fct_bookings bookings_source_src_28000
- ) subq_14
- WHERE booking__is_instant
- ) subq_16
+ DATE_TRUNC('day', ds) AS metric_time__day
+ , is_instant AS booking__is_instant
+ , booking_value AS average_booking_value
+ FROM ***************************.fct_bookings bookings_source_src_28000
+ ) subq_14
WHERE booking__is_instant
GROUP BY
metric_time__day
- ) subq_20
+ ) subq_19
FULL OUTER JOIN (
-- Read Elements From Semantic Model 'bookings_source'
-- Metric Time Dimension 'ds'
@@ -50,9 +42,9 @@ FROM (
FROM ***************************.fct_bookings bookings_source_src_28000
GROUP BY
DATE_TRUNC('day', ds)
- ) subq_25
+ ) subq_24
ON
- subq_20.metric_time__day = subq_25.metric_time__day
+ subq_19.metric_time__day = subq_24.metric_time__day
GROUP BY
- COALESCE(subq_20.metric_time__day, subq_25.metric_time__day)
-) subq_26
+ COALESCE(subq_19.metric_time__day, subq_24.metric_time__day)
+) subq_25
diff --git a/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/Snowflake/test_multiple_categorical_dimension_pushdown__plan0_optimized.sql b/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/Snowflake/test_multiple_categorical_dimension_pushdown__plan0_optimized.sql
index a35b4c236f..7dadffd239 100644
--- a/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/Snowflake/test_multiple_categorical_dimension_pushdown__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/Snowflake/test_multiple_categorical_dimension_pushdown__plan0_optimized.sql
@@ -1,43 +1,32 @@
--- Constrain Output with WHERE
+-- Join Standard Outputs
+-- Pass Only Elements: ['listings', 'user__home_state_latest', 'listing__is_lux_latest', 'listing__capacity_latest']
-- Pass Only Elements: ['listings', 'user__home_state_latest']
-- Aggregate Measures
-- Compute Metrics via Expressions
SELECT
- user__home_state_latest
- , SUM(listings) AS listings
+ users_latest_src_28000.home_state_latest AS user__home_state_latest
+ , SUM(subq_13.listings) AS listings
FROM (
- -- Join Standard Outputs
- -- Pass Only Elements: ['listings', 'user__home_state_latest', 'listing__is_lux_latest', 'listing__capacity_latest']
+ -- Constrain Output with WHERE
+ -- Pass Only Elements: ['listings', 'listing__is_lux_latest', 'listing__capacity_latest', 'user']
SELECT
- subq_13.listing__is_lux_latest AS listing__is_lux_latest
- , subq_13.listing__capacity_latest AS listing__capacity_latest
- , users_latest_src_28000.home_state_latest AS user__home_state_latest
- , subq_13.listings AS listings
+ subq_11.user
+ , listings
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['listings', 'listing__is_lux_latest', 'listing__capacity_latest', 'user']
+ -- Read Elements From Semantic Model 'listings_latest'
+ -- Metric Time Dimension 'ds'
SELECT
- subq_11.user
- , listing__is_lux_latest
- , listing__capacity_latest
- , listings
- FROM (
- -- Read Elements From Semantic Model 'listings_latest'
- -- Metric Time Dimension 'ds'
- SELECT
- user_id AS user
- , is_lux AS listing__is_lux_latest
- , capacity AS listing__capacity_latest
- , 1 AS listings
- FROM ***************************.dim_listings_latest listings_latest_src_28000
- ) subq_11
- WHERE listing__is_lux_latest OR listing__capacity_latest > 4
- ) subq_13
- LEFT OUTER JOIN
- ***************************.dim_users_latest users_latest_src_28000
- ON
- subq_13.user = users_latest_src_28000.user_id
-) subq_17
-WHERE listing__is_lux_latest OR listing__capacity_latest > 4
+ user_id AS user
+ , is_lux AS listing__is_lux_latest
+ , capacity AS listing__capacity_latest
+ , 1 AS listings
+ FROM ***************************.dim_listings_latest listings_latest_src_28000
+ ) subq_11
+ WHERE listing__is_lux_latest OR listing__capacity_latest > 4
+) subq_13
+LEFT OUTER JOIN
+ ***************************.dim_users_latest users_latest_src_28000
+ON
+ subq_13.user = users_latest_src_28000.user_id
GROUP BY
- user__home_state_latest
+ users_latest_src_28000.home_state_latest
diff --git a/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/Snowflake/test_single_categorical_dimension_pushdown__plan0_optimized.sql b/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/Snowflake/test_single_categorical_dimension_pushdown__plan0_optimized.sql
index 73800fe828..d243d87372 100644
--- a/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/Snowflake/test_single_categorical_dimension_pushdown__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/Snowflake/test_single_categorical_dimension_pushdown__plan0_optimized.sql
@@ -1,40 +1,31 @@
--- Constrain Output with WHERE
+-- Join Standard Outputs
+-- Pass Only Elements: ['bookings', 'listing__country_latest', 'booking__is_instant']
-- Pass Only Elements: ['bookings', 'listing__country_latest']
-- Aggregate Measures
-- Compute Metrics via Expressions
SELECT
- listing__country_latest
- , SUM(bookings) AS bookings
+ listings_latest_src_28000.country AS listing__country_latest
+ , SUM(subq_14.bookings) AS bookings
FROM (
- -- Join Standard Outputs
- -- Pass Only Elements: ['bookings', 'listing__country_latest', 'booking__is_instant']
+ -- Constrain Output with WHERE
+ -- Pass Only Elements: ['bookings', 'booking__is_instant', 'listing']
SELECT
- subq_14.booking__is_instant AS booking__is_instant
- , listings_latest_src_28000.country AS listing__country_latest
- , subq_14.bookings AS bookings
+ listing
+ , bookings
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['bookings', 'booking__is_instant', 'listing']
+ -- Read Elements From Semantic Model 'bookings_source'
+ -- Metric Time Dimension 'ds'
SELECT
- listing
- , booking__is_instant
- , bookings
- FROM (
- -- Read Elements From Semantic Model 'bookings_source'
- -- Metric Time Dimension 'ds'
- SELECT
- listing_id AS listing
- , is_instant AS booking__is_instant
- , 1 AS bookings
- FROM ***************************.fct_bookings bookings_source_src_28000
- ) subq_12
- WHERE booking__is_instant
- ) subq_14
- LEFT OUTER JOIN
- ***************************.dim_listings_latest listings_latest_src_28000
- ON
- subq_14.listing = listings_latest_src_28000.listing_id
-) subq_19
-WHERE booking__is_instant
+ listing_id AS listing
+ , is_instant AS booking__is_instant
+ , 1 AS bookings
+ FROM ***************************.fct_bookings bookings_source_src_28000
+ ) subq_12
+ WHERE booking__is_instant
+) subq_14
+LEFT OUTER JOIN
+ ***************************.dim_listings_latest listings_latest_src_28000
+ON
+ subq_14.listing = listings_latest_src_28000.listing_id
GROUP BY
- listing__country_latest
+ listings_latest_src_28000.country
diff --git a/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/Trino/test_different_filters_on_same_measure_source_categorical_dimension__plan0_optimized.sql b/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/Trino/test_different_filters_on_same_measure_source_categorical_dimension__plan0_optimized.sql
index 4e02914645..e2a4b4328a 100644
--- a/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/Trino/test_different_filters_on_same_measure_source_categorical_dimension__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/Trino/test_different_filters_on_same_measure_source_categorical_dimension__plan0_optimized.sql
@@ -5,11 +5,12 @@ SELECT
FROM (
-- Combine Aggregated Outputs
SELECT
- COALESCE(subq_20.metric_time__day, subq_25.metric_time__day) AS metric_time__day
- , MAX(subq_20.average_booking_value) AS average_booking_value
- , MAX(subq_25.max_booking_value) AS max_booking_value
+ COALESCE(subq_19.metric_time__day, subq_24.metric_time__day) AS metric_time__day
+ , MAX(subq_19.average_booking_value) AS average_booking_value
+ , MAX(subq_24.max_booking_value) AS max_booking_value
FROM (
-- Constrain Output with WHERE
+ -- Pass Only Elements: ['average_booking_value', 'booking__is_instant', 'metric_time__day']
-- Pass Only Elements: ['average_booking_value', 'metric_time__day']
-- Aggregate Measures
-- Compute Metrics via Expressions
@@ -17,27 +18,18 @@ FROM (
metric_time__day
, AVG(average_booking_value) AS average_booking_value
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['average_booking_value', 'booking__is_instant', 'metric_time__day']
+ -- Read Elements From Semantic Model 'bookings_source'
+ -- Metric Time Dimension 'ds'
SELECT
- metric_time__day
- , booking__is_instant
- , average_booking_value
- FROM (
- -- Read Elements From Semantic Model 'bookings_source'
- -- Metric Time Dimension 'ds'
- SELECT
- DATE_TRUNC('day', ds) AS metric_time__day
- , is_instant AS booking__is_instant
- , booking_value AS average_booking_value
- FROM ***************************.fct_bookings bookings_source_src_28000
- ) subq_14
- WHERE booking__is_instant
- ) subq_16
+ DATE_TRUNC('day', ds) AS metric_time__day
+ , is_instant AS booking__is_instant
+ , booking_value AS average_booking_value
+ FROM ***************************.fct_bookings bookings_source_src_28000
+ ) subq_14
WHERE booking__is_instant
GROUP BY
metric_time__day
- ) subq_20
+ ) subq_19
FULL OUTER JOIN (
-- Read Elements From Semantic Model 'bookings_source'
-- Metric Time Dimension 'ds'
@@ -50,9 +42,9 @@ FROM (
FROM ***************************.fct_bookings bookings_source_src_28000
GROUP BY
DATE_TRUNC('day', ds)
- ) subq_25
+ ) subq_24
ON
- subq_20.metric_time__day = subq_25.metric_time__day
+ subq_19.metric_time__day = subq_24.metric_time__day
GROUP BY
- COALESCE(subq_20.metric_time__day, subq_25.metric_time__day)
-) subq_26
+ COALESCE(subq_19.metric_time__day, subq_24.metric_time__day)
+) subq_25
diff --git a/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/Trino/test_multiple_categorical_dimension_pushdown__plan0_optimized.sql b/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/Trino/test_multiple_categorical_dimension_pushdown__plan0_optimized.sql
index a35b4c236f..7dadffd239 100644
--- a/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/Trino/test_multiple_categorical_dimension_pushdown__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/Trino/test_multiple_categorical_dimension_pushdown__plan0_optimized.sql
@@ -1,43 +1,32 @@
--- Constrain Output with WHERE
+-- Join Standard Outputs
+-- Pass Only Elements: ['listings', 'user__home_state_latest', 'listing__is_lux_latest', 'listing__capacity_latest']
-- Pass Only Elements: ['listings', 'user__home_state_latest']
-- Aggregate Measures
-- Compute Metrics via Expressions
SELECT
- user__home_state_latest
- , SUM(listings) AS listings
+ users_latest_src_28000.home_state_latest AS user__home_state_latest
+ , SUM(subq_13.listings) AS listings
FROM (
- -- Join Standard Outputs
- -- Pass Only Elements: ['listings', 'user__home_state_latest', 'listing__is_lux_latest', 'listing__capacity_latest']
+ -- Constrain Output with WHERE
+ -- Pass Only Elements: ['listings', 'listing__is_lux_latest', 'listing__capacity_latest', 'user']
SELECT
- subq_13.listing__is_lux_latest AS listing__is_lux_latest
- , subq_13.listing__capacity_latest AS listing__capacity_latest
- , users_latest_src_28000.home_state_latest AS user__home_state_latest
- , subq_13.listings AS listings
+ subq_11.user
+ , listings
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['listings', 'listing__is_lux_latest', 'listing__capacity_latest', 'user']
+ -- Read Elements From Semantic Model 'listings_latest'
+ -- Metric Time Dimension 'ds'
SELECT
- subq_11.user
- , listing__is_lux_latest
- , listing__capacity_latest
- , listings
- FROM (
- -- Read Elements From Semantic Model 'listings_latest'
- -- Metric Time Dimension 'ds'
- SELECT
- user_id AS user
- , is_lux AS listing__is_lux_latest
- , capacity AS listing__capacity_latest
- , 1 AS listings
- FROM ***************************.dim_listings_latest listings_latest_src_28000
- ) subq_11
- WHERE listing__is_lux_latest OR listing__capacity_latest > 4
- ) subq_13
- LEFT OUTER JOIN
- ***************************.dim_users_latest users_latest_src_28000
- ON
- subq_13.user = users_latest_src_28000.user_id
-) subq_17
-WHERE listing__is_lux_latest OR listing__capacity_latest > 4
+ user_id AS user
+ , is_lux AS listing__is_lux_latest
+ , capacity AS listing__capacity_latest
+ , 1 AS listings
+ FROM ***************************.dim_listings_latest listings_latest_src_28000
+ ) subq_11
+ WHERE listing__is_lux_latest OR listing__capacity_latest > 4
+) subq_13
+LEFT OUTER JOIN
+ ***************************.dim_users_latest users_latest_src_28000
+ON
+ subq_13.user = users_latest_src_28000.user_id
GROUP BY
- user__home_state_latest
+ users_latest_src_28000.home_state_latest
diff --git a/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/Trino/test_single_categorical_dimension_pushdown__plan0_optimized.sql b/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/Trino/test_single_categorical_dimension_pushdown__plan0_optimized.sql
index 73800fe828..d243d87372 100644
--- a/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/Trino/test_single_categorical_dimension_pushdown__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_predicate_pushdown_rendering.py/SqlQueryPlan/Trino/test_single_categorical_dimension_pushdown__plan0_optimized.sql
@@ -1,40 +1,31 @@
--- Constrain Output with WHERE
+-- Join Standard Outputs
+-- Pass Only Elements: ['bookings', 'listing__country_latest', 'booking__is_instant']
-- Pass Only Elements: ['bookings', 'listing__country_latest']
-- Aggregate Measures
-- Compute Metrics via Expressions
SELECT
- listing__country_latest
- , SUM(bookings) AS bookings
+ listings_latest_src_28000.country AS listing__country_latest
+ , SUM(subq_14.bookings) AS bookings
FROM (
- -- Join Standard Outputs
- -- Pass Only Elements: ['bookings', 'listing__country_latest', 'booking__is_instant']
+ -- Constrain Output with WHERE
+ -- Pass Only Elements: ['bookings', 'booking__is_instant', 'listing']
SELECT
- subq_14.booking__is_instant AS booking__is_instant
- , listings_latest_src_28000.country AS listing__country_latest
- , subq_14.bookings AS bookings
+ listing
+ , bookings
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['bookings', 'booking__is_instant', 'listing']
+ -- Read Elements From Semantic Model 'bookings_source'
+ -- Metric Time Dimension 'ds'
SELECT
- listing
- , booking__is_instant
- , bookings
- FROM (
- -- Read Elements From Semantic Model 'bookings_source'
- -- Metric Time Dimension 'ds'
- SELECT
- listing_id AS listing
- , is_instant AS booking__is_instant
- , 1 AS bookings
- FROM ***************************.fct_bookings bookings_source_src_28000
- ) subq_12
- WHERE booking__is_instant
- ) subq_14
- LEFT OUTER JOIN
- ***************************.dim_listings_latest listings_latest_src_28000
- ON
- subq_14.listing = listings_latest_src_28000.listing_id
-) subq_19
-WHERE booking__is_instant
+ listing_id AS listing
+ , is_instant AS booking__is_instant
+ , 1 AS bookings
+ FROM ***************************.fct_bookings bookings_source_src_28000
+ ) subq_12
+ WHERE booking__is_instant
+) subq_14
+LEFT OUTER JOIN
+ ***************************.dim_listings_latest listings_latest_src_28000
+ON
+ subq_14.listing = listings_latest_src_28000.listing_id
GROUP BY
- listing__country_latest
+ listings_latest_src_28000.country
diff --git a/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_distinct_values__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_distinct_values__plan0_optimized.sql
index 97983bcc56..1653ada5bd 100644
--- a/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_distinct_values__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_distinct_values__plan0_optimized.sql
@@ -4,17 +4,11 @@
SELECT
listing__country_latest
FROM (
- -- Constrain Output with WHERE
+ -- Read Elements From Semantic Model 'listings_latest'
SELECT
- listing__country_latest
- FROM (
- -- Read Elements From Semantic Model 'listings_latest'
- SELECT
- country AS listing__country_latest
- FROM ***************************.dim_listings_latest listings_latest_src_28000
- ) subq_3
- WHERE listing__country_latest = 'us'
-) subq_4
+ country AS listing__country_latest
+ FROM ***************************.dim_listings_latest listings_latest_src_28000
+) subq_3
WHERE listing__country_latest = 'us'
GROUP BY
listing__country_latest
diff --git a/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_measure_constraint_with_reused_measure__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_measure_constraint_with_reused_measure__plan0_optimized.sql
index bc67dddd74..3966cc5f91 100644
--- a/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_measure_constraint_with_reused_measure__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_measure_constraint_with_reused_measure__plan0_optimized.sql
@@ -5,11 +5,12 @@ SELECT
FROM (
-- Combine Aggregated Outputs
SELECT
- COALESCE(subq_20.metric_time__day, subq_25.metric_time__day) AS metric_time__day
- , MAX(subq_20.booking_value_with_is_instant_constraint) AS booking_value_with_is_instant_constraint
- , MAX(subq_25.booking_value) AS booking_value
+ COALESCE(subq_19.metric_time__day, subq_24.metric_time__day) AS metric_time__day
+ , MAX(subq_19.booking_value_with_is_instant_constraint) AS booking_value_with_is_instant_constraint
+ , MAX(subq_24.booking_value) AS booking_value
FROM (
-- Constrain Output with WHERE
+ -- Pass Only Elements: ['booking_value', 'booking__is_instant', 'metric_time__day']
-- Pass Only Elements: ['booking_value', 'metric_time__day']
-- Aggregate Measures
-- Compute Metrics via Expressions
@@ -17,27 +18,18 @@ FROM (
metric_time__day
, SUM(booking_value) AS booking_value_with_is_instant_constraint
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['booking_value', 'booking__is_instant', 'metric_time__day']
+ -- Read Elements From Semantic Model 'bookings_source'
+ -- Metric Time Dimension 'ds'
SELECT
- metric_time__day
- , booking__is_instant
+ DATETIME_TRUNC(ds, day) AS metric_time__day
+ , is_instant AS booking__is_instant
, booking_value
- FROM (
- -- Read Elements From Semantic Model 'bookings_source'
- -- Metric Time Dimension 'ds'
- SELECT
- DATETIME_TRUNC(ds, day) AS metric_time__day
- , is_instant AS booking__is_instant
- , booking_value
- FROM ***************************.fct_bookings bookings_source_src_28000
- ) subq_14
- WHERE booking__is_instant
- ) subq_16
+ FROM ***************************.fct_bookings bookings_source_src_28000
+ ) subq_14
WHERE booking__is_instant
GROUP BY
metric_time__day
- ) subq_20
+ ) subq_19
FULL OUTER JOIN (
-- Read Elements From Semantic Model 'bookings_source'
-- Metric Time Dimension 'ds'
@@ -50,9 +42,9 @@ FROM (
FROM ***************************.fct_bookings bookings_source_src_28000
GROUP BY
metric_time__day
- ) subq_25
+ ) subq_24
ON
- subq_20.metric_time__day = subq_25.metric_time__day
+ subq_19.metric_time__day = subq_24.metric_time__day
GROUP BY
metric_time__day
-) subq_26
+) subq_25
diff --git a/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_measure_constraint_with_single_expr_and_alias__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_measure_constraint_with_single_expr_and_alias__plan0_optimized.sql
index bfd2fbf7c5..25731bfc96 100644
--- a/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_measure_constraint_with_single_expr_and_alias__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_measure_constraint_with_single_expr_and_alias__plan0_optimized.sql
@@ -4,6 +4,7 @@ SELECT
, delayed_bookings * 2 AS double_counted_delayed_bookings
FROM (
-- Constrain Output with WHERE
+ -- Pass Only Elements: ['bookings', 'booking__is_instant', 'metric_time__day']
-- Pass Only Elements: ['bookings', 'metric_time__day']
-- Aggregate Measures
-- Compute Metrics via Expressions
@@ -11,24 +12,15 @@ FROM (
metric_time__day
, SUM(bookings) AS delayed_bookings
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['bookings', 'booking__is_instant', 'metric_time__day']
+ -- Read Elements From Semantic Model 'bookings_source'
+ -- Metric Time Dimension 'ds'
SELECT
- metric_time__day
- , booking__is_instant
- , bookings
- FROM (
- -- Read Elements From Semantic Model 'bookings_source'
- -- Metric Time Dimension 'ds'
- SELECT
- DATETIME_TRUNC(ds, day) AS metric_time__day
- , is_instant AS booking__is_instant
- , 1 AS bookings
- FROM ***************************.fct_bookings bookings_source_src_28000
- ) subq_8
- WHERE NOT booking__is_instant
- ) subq_10
+ DATETIME_TRUNC(ds, day) AS metric_time__day
+ , is_instant AS booking__is_instant
+ , 1 AS bookings
+ FROM ***************************.fct_bookings bookings_source_src_28000
+ ) subq_8
WHERE NOT booking__is_instant
GROUP BY
metric_time__day
-) subq_14
+) subq_13
diff --git a/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_distinct_values__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_distinct_values__plan0_optimized.sql
index 97983bcc56..1653ada5bd 100644
--- a/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_distinct_values__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_distinct_values__plan0_optimized.sql
@@ -4,17 +4,11 @@
SELECT
listing__country_latest
FROM (
- -- Constrain Output with WHERE
+ -- Read Elements From Semantic Model 'listings_latest'
SELECT
- listing__country_latest
- FROM (
- -- Read Elements From Semantic Model 'listings_latest'
- SELECT
- country AS listing__country_latest
- FROM ***************************.dim_listings_latest listings_latest_src_28000
- ) subq_3
- WHERE listing__country_latest = 'us'
-) subq_4
+ country AS listing__country_latest
+ FROM ***************************.dim_listings_latest listings_latest_src_28000
+) subq_3
WHERE listing__country_latest = 'us'
GROUP BY
listing__country_latest
diff --git a/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_measure_constraint_with_reused_measure__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_measure_constraint_with_reused_measure__plan0_optimized.sql
index 2f3840d9d3..6e61e1a06a 100644
--- a/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_measure_constraint_with_reused_measure__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_measure_constraint_with_reused_measure__plan0_optimized.sql
@@ -5,11 +5,12 @@ SELECT
FROM (
-- Combine Aggregated Outputs
SELECT
- COALESCE(subq_20.metric_time__day, subq_25.metric_time__day) AS metric_time__day
- , MAX(subq_20.booking_value_with_is_instant_constraint) AS booking_value_with_is_instant_constraint
- , MAX(subq_25.booking_value) AS booking_value
+ COALESCE(subq_19.metric_time__day, subq_24.metric_time__day) AS metric_time__day
+ , MAX(subq_19.booking_value_with_is_instant_constraint) AS booking_value_with_is_instant_constraint
+ , MAX(subq_24.booking_value) AS booking_value
FROM (
-- Constrain Output with WHERE
+ -- Pass Only Elements: ['booking_value', 'booking__is_instant', 'metric_time__day']
-- Pass Only Elements: ['booking_value', 'metric_time__day']
-- Aggregate Measures
-- Compute Metrics via Expressions
@@ -17,27 +18,18 @@ FROM (
metric_time__day
, SUM(booking_value) AS booking_value_with_is_instant_constraint
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['booking_value', 'booking__is_instant', 'metric_time__day']
+ -- Read Elements From Semantic Model 'bookings_source'
+ -- Metric Time Dimension 'ds'
SELECT
- metric_time__day
- , booking__is_instant
+ DATE_TRUNC('day', ds) AS metric_time__day
+ , is_instant AS booking__is_instant
, booking_value
- FROM (
- -- Read Elements From Semantic Model 'bookings_source'
- -- Metric Time Dimension 'ds'
- SELECT
- DATE_TRUNC('day', ds) AS metric_time__day
- , is_instant AS booking__is_instant
- , booking_value
- FROM ***************************.fct_bookings bookings_source_src_28000
- ) subq_14
- WHERE booking__is_instant
- ) subq_16
+ FROM ***************************.fct_bookings bookings_source_src_28000
+ ) subq_14
WHERE booking__is_instant
GROUP BY
metric_time__day
- ) subq_20
+ ) subq_19
FULL OUTER JOIN (
-- Read Elements From Semantic Model 'bookings_source'
-- Metric Time Dimension 'ds'
@@ -50,9 +42,9 @@ FROM (
FROM ***************************.fct_bookings bookings_source_src_28000
GROUP BY
DATE_TRUNC('day', ds)
- ) subq_25
+ ) subq_24
ON
- subq_20.metric_time__day = subq_25.metric_time__day
+ subq_19.metric_time__day = subq_24.metric_time__day
GROUP BY
- COALESCE(subq_20.metric_time__day, subq_25.metric_time__day)
-) subq_26
+ COALESCE(subq_19.metric_time__day, subq_24.metric_time__day)
+) subq_25
diff --git a/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_measure_constraint_with_single_expr_and_alias__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_measure_constraint_with_single_expr_and_alias__plan0_optimized.sql
index b1d886026c..478c021663 100644
--- a/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_measure_constraint_with_single_expr_and_alias__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_measure_constraint_with_single_expr_and_alias__plan0_optimized.sql
@@ -4,6 +4,7 @@ SELECT
, delayed_bookings * 2 AS double_counted_delayed_bookings
FROM (
-- Constrain Output with WHERE
+ -- Pass Only Elements: ['bookings', 'booking__is_instant', 'metric_time__day']
-- Pass Only Elements: ['bookings', 'metric_time__day']
-- Aggregate Measures
-- Compute Metrics via Expressions
@@ -11,24 +12,15 @@ FROM (
metric_time__day
, SUM(bookings) AS delayed_bookings
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['bookings', 'booking__is_instant', 'metric_time__day']
+ -- Read Elements From Semantic Model 'bookings_source'
+ -- Metric Time Dimension 'ds'
SELECT
- metric_time__day
- , booking__is_instant
- , bookings
- FROM (
- -- Read Elements From Semantic Model 'bookings_source'
- -- Metric Time Dimension 'ds'
- SELECT
- DATE_TRUNC('day', ds) AS metric_time__day
- , is_instant AS booking__is_instant
- , 1 AS bookings
- FROM ***************************.fct_bookings bookings_source_src_28000
- ) subq_8
- WHERE NOT booking__is_instant
- ) subq_10
+ DATE_TRUNC('day', ds) AS metric_time__day
+ , is_instant AS booking__is_instant
+ , 1 AS bookings
+ FROM ***************************.fct_bookings bookings_source_src_28000
+ ) subq_8
WHERE NOT booking__is_instant
GROUP BY
metric_time__day
-) subq_14
+) subq_13
diff --git a/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_distinct_values__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_distinct_values__plan0_optimized.sql
index 97983bcc56..1653ada5bd 100644
--- a/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_distinct_values__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_distinct_values__plan0_optimized.sql
@@ -4,17 +4,11 @@
SELECT
listing__country_latest
FROM (
- -- Constrain Output with WHERE
+ -- Read Elements From Semantic Model 'listings_latest'
SELECT
- listing__country_latest
- FROM (
- -- Read Elements From Semantic Model 'listings_latest'
- SELECT
- country AS listing__country_latest
- FROM ***************************.dim_listings_latest listings_latest_src_28000
- ) subq_3
- WHERE listing__country_latest = 'us'
-) subq_4
+ country AS listing__country_latest
+ FROM ***************************.dim_listings_latest listings_latest_src_28000
+) subq_3
WHERE listing__country_latest = 'us'
GROUP BY
listing__country_latest
diff --git a/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_measure_constraint_with_reused_measure__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_measure_constraint_with_reused_measure__plan0_optimized.sql
index 2f3840d9d3..6e61e1a06a 100644
--- a/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_measure_constraint_with_reused_measure__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_measure_constraint_with_reused_measure__plan0_optimized.sql
@@ -5,11 +5,12 @@ SELECT
FROM (
-- Combine Aggregated Outputs
SELECT
- COALESCE(subq_20.metric_time__day, subq_25.metric_time__day) AS metric_time__day
- , MAX(subq_20.booking_value_with_is_instant_constraint) AS booking_value_with_is_instant_constraint
- , MAX(subq_25.booking_value) AS booking_value
+ COALESCE(subq_19.metric_time__day, subq_24.metric_time__day) AS metric_time__day
+ , MAX(subq_19.booking_value_with_is_instant_constraint) AS booking_value_with_is_instant_constraint
+ , MAX(subq_24.booking_value) AS booking_value
FROM (
-- Constrain Output with WHERE
+ -- Pass Only Elements: ['booking_value', 'booking__is_instant', 'metric_time__day']
-- Pass Only Elements: ['booking_value', 'metric_time__day']
-- Aggregate Measures
-- Compute Metrics via Expressions
@@ -17,27 +18,18 @@ FROM (
metric_time__day
, SUM(booking_value) AS booking_value_with_is_instant_constraint
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['booking_value', 'booking__is_instant', 'metric_time__day']
+ -- Read Elements From Semantic Model 'bookings_source'
+ -- Metric Time Dimension 'ds'
SELECT
- metric_time__day
- , booking__is_instant
+ DATE_TRUNC('day', ds) AS metric_time__day
+ , is_instant AS booking__is_instant
, booking_value
- FROM (
- -- Read Elements From Semantic Model 'bookings_source'
- -- Metric Time Dimension 'ds'
- SELECT
- DATE_TRUNC('day', ds) AS metric_time__day
- , is_instant AS booking__is_instant
- , booking_value
- FROM ***************************.fct_bookings bookings_source_src_28000
- ) subq_14
- WHERE booking__is_instant
- ) subq_16
+ FROM ***************************.fct_bookings bookings_source_src_28000
+ ) subq_14
WHERE booking__is_instant
GROUP BY
metric_time__day
- ) subq_20
+ ) subq_19
FULL OUTER JOIN (
-- Read Elements From Semantic Model 'bookings_source'
-- Metric Time Dimension 'ds'
@@ -50,9 +42,9 @@ FROM (
FROM ***************************.fct_bookings bookings_source_src_28000
GROUP BY
DATE_TRUNC('day', ds)
- ) subq_25
+ ) subq_24
ON
- subq_20.metric_time__day = subq_25.metric_time__day
+ subq_19.metric_time__day = subq_24.metric_time__day
GROUP BY
- COALESCE(subq_20.metric_time__day, subq_25.metric_time__day)
-) subq_26
+ COALESCE(subq_19.metric_time__day, subq_24.metric_time__day)
+) subq_25
diff --git a/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_measure_constraint_with_single_expr_and_alias__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_measure_constraint_with_single_expr_and_alias__plan0_optimized.sql
index b1d886026c..478c021663 100644
--- a/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_measure_constraint_with_single_expr_and_alias__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_measure_constraint_with_single_expr_and_alias__plan0_optimized.sql
@@ -4,6 +4,7 @@ SELECT
, delayed_bookings * 2 AS double_counted_delayed_bookings
FROM (
-- Constrain Output with WHERE
+ -- Pass Only Elements: ['bookings', 'booking__is_instant', 'metric_time__day']
-- Pass Only Elements: ['bookings', 'metric_time__day']
-- Aggregate Measures
-- Compute Metrics via Expressions
@@ -11,24 +12,15 @@ FROM (
metric_time__day
, SUM(bookings) AS delayed_bookings
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['bookings', 'booking__is_instant', 'metric_time__day']
+ -- Read Elements From Semantic Model 'bookings_source'
+ -- Metric Time Dimension 'ds'
SELECT
- metric_time__day
- , booking__is_instant
- , bookings
- FROM (
- -- Read Elements From Semantic Model 'bookings_source'
- -- Metric Time Dimension 'ds'
- SELECT
- DATE_TRUNC('day', ds) AS metric_time__day
- , is_instant AS booking__is_instant
- , 1 AS bookings
- FROM ***************************.fct_bookings bookings_source_src_28000
- ) subq_8
- WHERE NOT booking__is_instant
- ) subq_10
+ DATE_TRUNC('day', ds) AS metric_time__day
+ , is_instant AS booking__is_instant
+ , 1 AS bookings
+ FROM ***************************.fct_bookings bookings_source_src_28000
+ ) subq_8
WHERE NOT booking__is_instant
GROUP BY
metric_time__day
-) subq_14
+) subq_13
diff --git a/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_distinct_values__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_distinct_values__plan0_optimized.sql
index 97983bcc56..1653ada5bd 100644
--- a/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_distinct_values__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_distinct_values__plan0_optimized.sql
@@ -4,17 +4,11 @@
SELECT
listing__country_latest
FROM (
- -- Constrain Output with WHERE
+ -- Read Elements From Semantic Model 'listings_latest'
SELECT
- listing__country_latest
- FROM (
- -- Read Elements From Semantic Model 'listings_latest'
- SELECT
- country AS listing__country_latest
- FROM ***************************.dim_listings_latest listings_latest_src_28000
- ) subq_3
- WHERE listing__country_latest = 'us'
-) subq_4
+ country AS listing__country_latest
+ FROM ***************************.dim_listings_latest listings_latest_src_28000
+) subq_3
WHERE listing__country_latest = 'us'
GROUP BY
listing__country_latest
diff --git a/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_measure_constraint_with_reused_measure__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_measure_constraint_with_reused_measure__plan0_optimized.sql
index 66be1a70a1..cfa9843dc9 100644
--- a/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_measure_constraint_with_reused_measure__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_measure_constraint_with_reused_measure__plan0_optimized.sql
@@ -5,11 +5,12 @@ SELECT
FROM (
-- Combine Aggregated Outputs
SELECT
- COALESCE(subq_20.metric_time__day, subq_25.metric_time__day) AS metric_time__day
- , MAX(subq_20.booking_value_with_is_instant_constraint) AS booking_value_with_is_instant_constraint
- , MAX(subq_25.booking_value) AS booking_value
+ COALESCE(subq_19.metric_time__day, subq_24.metric_time__day) AS metric_time__day
+ , MAX(subq_19.booking_value_with_is_instant_constraint) AS booking_value_with_is_instant_constraint
+ , MAX(subq_24.booking_value) AS booking_value
FROM (
-- Constrain Output with WHERE
+ -- Pass Only Elements: ['booking_value', 'booking__is_instant', 'metric_time__day']
-- Pass Only Elements: ['booking_value', 'metric_time__day']
-- Aggregate Measures
-- Compute Metrics via Expressions
@@ -17,27 +18,18 @@ FROM (
metric_time__day
, SUM(booking_value) AS booking_value_with_is_instant_constraint
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['booking_value', 'booking__is_instant', 'metric_time__day']
+ -- Read Elements From Semantic Model 'bookings_source'
+ -- Metric Time Dimension 'ds'
SELECT
- metric_time__day
- , booking__is_instant
+ DATE_TRUNC('day', ds) AS metric_time__day
+ , is_instant AS booking__is_instant
, booking_value
- FROM (
- -- Read Elements From Semantic Model 'bookings_source'
- -- Metric Time Dimension 'ds'
- SELECT
- DATE_TRUNC('day', ds) AS metric_time__day
- , is_instant AS booking__is_instant
- , booking_value
- FROM ***************************.fct_bookings bookings_source_src_28000
- ) subq_14
- WHERE booking__is_instant
- ) subq_16
+ FROM ***************************.fct_bookings bookings_source_src_28000
+ ) subq_14
WHERE booking__is_instant
GROUP BY
metric_time__day
- ) subq_20
+ ) subq_19
FULL OUTER JOIN (
-- Read Elements From Semantic Model 'bookings_source'
-- Metric Time Dimension 'ds'
@@ -50,9 +42,9 @@ FROM (
FROM ***************************.fct_bookings bookings_source_src_28000
GROUP BY
DATE_TRUNC('day', ds)
- ) subq_25
+ ) subq_24
ON
- subq_20.metric_time__day = subq_25.metric_time__day
+ subq_19.metric_time__day = subq_24.metric_time__day
GROUP BY
- COALESCE(subq_20.metric_time__day, subq_25.metric_time__day)
-) subq_26
+ COALESCE(subq_19.metric_time__day, subq_24.metric_time__day)
+) subq_25
diff --git a/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_measure_constraint_with_single_expr_and_alias__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_measure_constraint_with_single_expr_and_alias__plan0_optimized.sql
index b1d886026c..478c021663 100644
--- a/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_measure_constraint_with_single_expr_and_alias__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_measure_constraint_with_single_expr_and_alias__plan0_optimized.sql
@@ -4,6 +4,7 @@ SELECT
, delayed_bookings * 2 AS double_counted_delayed_bookings
FROM (
-- Constrain Output with WHERE
+ -- Pass Only Elements: ['bookings', 'booking__is_instant', 'metric_time__day']
-- Pass Only Elements: ['bookings', 'metric_time__day']
-- Aggregate Measures
-- Compute Metrics via Expressions
@@ -11,24 +12,15 @@ FROM (
metric_time__day
, SUM(bookings) AS delayed_bookings
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['bookings', 'booking__is_instant', 'metric_time__day']
+ -- Read Elements From Semantic Model 'bookings_source'
+ -- Metric Time Dimension 'ds'
SELECT
- metric_time__day
- , booking__is_instant
- , bookings
- FROM (
- -- Read Elements From Semantic Model 'bookings_source'
- -- Metric Time Dimension 'ds'
- SELECT
- DATE_TRUNC('day', ds) AS metric_time__day
- , is_instant AS booking__is_instant
- , 1 AS bookings
- FROM ***************************.fct_bookings bookings_source_src_28000
- ) subq_8
- WHERE NOT booking__is_instant
- ) subq_10
+ DATE_TRUNC('day', ds) AS metric_time__day
+ , is_instant AS booking__is_instant
+ , 1 AS bookings
+ FROM ***************************.fct_bookings bookings_source_src_28000
+ ) subq_8
WHERE NOT booking__is_instant
GROUP BY
metric_time__day
-) subq_14
+) subq_13
diff --git a/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_distinct_values__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_distinct_values__plan0_optimized.sql
index 97983bcc56..1653ada5bd 100644
--- a/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_distinct_values__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_distinct_values__plan0_optimized.sql
@@ -4,17 +4,11 @@
SELECT
listing__country_latest
FROM (
- -- Constrain Output with WHERE
+ -- Read Elements From Semantic Model 'listings_latest'
SELECT
- listing__country_latest
- FROM (
- -- Read Elements From Semantic Model 'listings_latest'
- SELECT
- country AS listing__country_latest
- FROM ***************************.dim_listings_latest listings_latest_src_28000
- ) subq_3
- WHERE listing__country_latest = 'us'
-) subq_4
+ country AS listing__country_latest
+ FROM ***************************.dim_listings_latest listings_latest_src_28000
+) subq_3
WHERE listing__country_latest = 'us'
GROUP BY
listing__country_latest
diff --git a/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_measure_constraint_with_reused_measure__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_measure_constraint_with_reused_measure__plan0_optimized.sql
index 66be1a70a1..cfa9843dc9 100644
--- a/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_measure_constraint_with_reused_measure__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_measure_constraint_with_reused_measure__plan0_optimized.sql
@@ -5,11 +5,12 @@ SELECT
FROM (
-- Combine Aggregated Outputs
SELECT
- COALESCE(subq_20.metric_time__day, subq_25.metric_time__day) AS metric_time__day
- , MAX(subq_20.booking_value_with_is_instant_constraint) AS booking_value_with_is_instant_constraint
- , MAX(subq_25.booking_value) AS booking_value
+ COALESCE(subq_19.metric_time__day, subq_24.metric_time__day) AS metric_time__day
+ , MAX(subq_19.booking_value_with_is_instant_constraint) AS booking_value_with_is_instant_constraint
+ , MAX(subq_24.booking_value) AS booking_value
FROM (
-- Constrain Output with WHERE
+ -- Pass Only Elements: ['booking_value', 'booking__is_instant', 'metric_time__day']
-- Pass Only Elements: ['booking_value', 'metric_time__day']
-- Aggregate Measures
-- Compute Metrics via Expressions
@@ -17,27 +18,18 @@ FROM (
metric_time__day
, SUM(booking_value) AS booking_value_with_is_instant_constraint
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['booking_value', 'booking__is_instant', 'metric_time__day']
+ -- Read Elements From Semantic Model 'bookings_source'
+ -- Metric Time Dimension 'ds'
SELECT
- metric_time__day
- , booking__is_instant
+ DATE_TRUNC('day', ds) AS metric_time__day
+ , is_instant AS booking__is_instant
, booking_value
- FROM (
- -- Read Elements From Semantic Model 'bookings_source'
- -- Metric Time Dimension 'ds'
- SELECT
- DATE_TRUNC('day', ds) AS metric_time__day
- , is_instant AS booking__is_instant
- , booking_value
- FROM ***************************.fct_bookings bookings_source_src_28000
- ) subq_14
- WHERE booking__is_instant
- ) subq_16
+ FROM ***************************.fct_bookings bookings_source_src_28000
+ ) subq_14
WHERE booking__is_instant
GROUP BY
metric_time__day
- ) subq_20
+ ) subq_19
FULL OUTER JOIN (
-- Read Elements From Semantic Model 'bookings_source'
-- Metric Time Dimension 'ds'
@@ -50,9 +42,9 @@ FROM (
FROM ***************************.fct_bookings bookings_source_src_28000
GROUP BY
DATE_TRUNC('day', ds)
- ) subq_25
+ ) subq_24
ON
- subq_20.metric_time__day = subq_25.metric_time__day
+ subq_19.metric_time__day = subq_24.metric_time__day
GROUP BY
- COALESCE(subq_20.metric_time__day, subq_25.metric_time__day)
-) subq_26
+ COALESCE(subq_19.metric_time__day, subq_24.metric_time__day)
+) subq_25
diff --git a/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_measure_constraint_with_single_expr_and_alias__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_measure_constraint_with_single_expr_and_alias__plan0_optimized.sql
index b1d886026c..478c021663 100644
--- a/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_measure_constraint_with_single_expr_and_alias__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_measure_constraint_with_single_expr_and_alias__plan0_optimized.sql
@@ -4,6 +4,7 @@ SELECT
, delayed_bookings * 2 AS double_counted_delayed_bookings
FROM (
-- Constrain Output with WHERE
+ -- Pass Only Elements: ['bookings', 'booking__is_instant', 'metric_time__day']
-- Pass Only Elements: ['bookings', 'metric_time__day']
-- Aggregate Measures
-- Compute Metrics via Expressions
@@ -11,24 +12,15 @@ FROM (
metric_time__day
, SUM(bookings) AS delayed_bookings
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['bookings', 'booking__is_instant', 'metric_time__day']
+ -- Read Elements From Semantic Model 'bookings_source'
+ -- Metric Time Dimension 'ds'
SELECT
- metric_time__day
- , booking__is_instant
- , bookings
- FROM (
- -- Read Elements From Semantic Model 'bookings_source'
- -- Metric Time Dimension 'ds'
- SELECT
- DATE_TRUNC('day', ds) AS metric_time__day
- , is_instant AS booking__is_instant
- , 1 AS bookings
- FROM ***************************.fct_bookings bookings_source_src_28000
- ) subq_8
- WHERE NOT booking__is_instant
- ) subq_10
+ DATE_TRUNC('day', ds) AS metric_time__day
+ , is_instant AS booking__is_instant
+ , 1 AS bookings
+ FROM ***************************.fct_bookings bookings_source_src_28000
+ ) subq_8
WHERE NOT booking__is_instant
GROUP BY
metric_time__day
-) subq_14
+) subq_13
diff --git a/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_distinct_values__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_distinct_values__plan0_optimized.sql
index 97983bcc56..1653ada5bd 100644
--- a/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_distinct_values__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_distinct_values__plan0_optimized.sql
@@ -4,17 +4,11 @@
SELECT
listing__country_latest
FROM (
- -- Constrain Output with WHERE
+ -- Read Elements From Semantic Model 'listings_latest'
SELECT
- listing__country_latest
- FROM (
- -- Read Elements From Semantic Model 'listings_latest'
- SELECT
- country AS listing__country_latest
- FROM ***************************.dim_listings_latest listings_latest_src_28000
- ) subq_3
- WHERE listing__country_latest = 'us'
-) subq_4
+ country AS listing__country_latest
+ FROM ***************************.dim_listings_latest listings_latest_src_28000
+) subq_3
WHERE listing__country_latest = 'us'
GROUP BY
listing__country_latest
diff --git a/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_measure_constraint_with_reused_measure__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_measure_constraint_with_reused_measure__plan0_optimized.sql
index 2f3840d9d3..6e61e1a06a 100644
--- a/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_measure_constraint_with_reused_measure__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_measure_constraint_with_reused_measure__plan0_optimized.sql
@@ -5,11 +5,12 @@ SELECT
FROM (
-- Combine Aggregated Outputs
SELECT
- COALESCE(subq_20.metric_time__day, subq_25.metric_time__day) AS metric_time__day
- , MAX(subq_20.booking_value_with_is_instant_constraint) AS booking_value_with_is_instant_constraint
- , MAX(subq_25.booking_value) AS booking_value
+ COALESCE(subq_19.metric_time__day, subq_24.metric_time__day) AS metric_time__day
+ , MAX(subq_19.booking_value_with_is_instant_constraint) AS booking_value_with_is_instant_constraint
+ , MAX(subq_24.booking_value) AS booking_value
FROM (
-- Constrain Output with WHERE
+ -- Pass Only Elements: ['booking_value', 'booking__is_instant', 'metric_time__day']
-- Pass Only Elements: ['booking_value', 'metric_time__day']
-- Aggregate Measures
-- Compute Metrics via Expressions
@@ -17,27 +18,18 @@ FROM (
metric_time__day
, SUM(booking_value) AS booking_value_with_is_instant_constraint
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['booking_value', 'booking__is_instant', 'metric_time__day']
+ -- Read Elements From Semantic Model 'bookings_source'
+ -- Metric Time Dimension 'ds'
SELECT
- metric_time__day
- , booking__is_instant
+ DATE_TRUNC('day', ds) AS metric_time__day
+ , is_instant AS booking__is_instant
, booking_value
- FROM (
- -- Read Elements From Semantic Model 'bookings_source'
- -- Metric Time Dimension 'ds'
- SELECT
- DATE_TRUNC('day', ds) AS metric_time__day
- , is_instant AS booking__is_instant
- , booking_value
- FROM ***************************.fct_bookings bookings_source_src_28000
- ) subq_14
- WHERE booking__is_instant
- ) subq_16
+ FROM ***************************.fct_bookings bookings_source_src_28000
+ ) subq_14
WHERE booking__is_instant
GROUP BY
metric_time__day
- ) subq_20
+ ) subq_19
FULL OUTER JOIN (
-- Read Elements From Semantic Model 'bookings_source'
-- Metric Time Dimension 'ds'
@@ -50,9 +42,9 @@ FROM (
FROM ***************************.fct_bookings bookings_source_src_28000
GROUP BY
DATE_TRUNC('day', ds)
- ) subq_25
+ ) subq_24
ON
- subq_20.metric_time__day = subq_25.metric_time__day
+ subq_19.metric_time__day = subq_24.metric_time__day
GROUP BY
- COALESCE(subq_20.metric_time__day, subq_25.metric_time__day)
-) subq_26
+ COALESCE(subq_19.metric_time__day, subq_24.metric_time__day)
+) subq_25
diff --git a/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_measure_constraint_with_single_expr_and_alias__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_measure_constraint_with_single_expr_and_alias__plan0_optimized.sql
index b1d886026c..478c021663 100644
--- a/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_measure_constraint_with_single_expr_and_alias__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_measure_constraint_with_single_expr_and_alias__plan0_optimized.sql
@@ -4,6 +4,7 @@ SELECT
, delayed_bookings * 2 AS double_counted_delayed_bookings
FROM (
-- Constrain Output with WHERE
+ -- Pass Only Elements: ['bookings', 'booking__is_instant', 'metric_time__day']
-- Pass Only Elements: ['bookings', 'metric_time__day']
-- Aggregate Measures
-- Compute Metrics via Expressions
@@ -11,24 +12,15 @@ FROM (
metric_time__day
, SUM(bookings) AS delayed_bookings
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['bookings', 'booking__is_instant', 'metric_time__day']
+ -- Read Elements From Semantic Model 'bookings_source'
+ -- Metric Time Dimension 'ds'
SELECT
- metric_time__day
- , booking__is_instant
- , bookings
- FROM (
- -- Read Elements From Semantic Model 'bookings_source'
- -- Metric Time Dimension 'ds'
- SELECT
- DATE_TRUNC('day', ds) AS metric_time__day
- , is_instant AS booking__is_instant
- , 1 AS bookings
- FROM ***************************.fct_bookings bookings_source_src_28000
- ) subq_8
- WHERE NOT booking__is_instant
- ) subq_10
+ DATE_TRUNC('day', ds) AS metric_time__day
+ , is_instant AS booking__is_instant
+ , 1 AS bookings
+ FROM ***************************.fct_bookings bookings_source_src_28000
+ ) subq_8
WHERE NOT booking__is_instant
GROUP BY
metric_time__day
-) subq_14
+) subq_13
diff --git a/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_distinct_values__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_distinct_values__plan0_optimized.sql
index 97983bcc56..1653ada5bd 100644
--- a/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_distinct_values__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_distinct_values__plan0_optimized.sql
@@ -4,17 +4,11 @@
SELECT
listing__country_latest
FROM (
- -- Constrain Output with WHERE
+ -- Read Elements From Semantic Model 'listings_latest'
SELECT
- listing__country_latest
- FROM (
- -- Read Elements From Semantic Model 'listings_latest'
- SELECT
- country AS listing__country_latest
- FROM ***************************.dim_listings_latest listings_latest_src_28000
- ) subq_3
- WHERE listing__country_latest = 'us'
-) subq_4
+ country AS listing__country_latest
+ FROM ***************************.dim_listings_latest listings_latest_src_28000
+) subq_3
WHERE listing__country_latest = 'us'
GROUP BY
listing__country_latest
diff --git a/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_measure_constraint_with_reused_measure__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_measure_constraint_with_reused_measure__plan0_optimized.sql
index 2f3840d9d3..6e61e1a06a 100644
--- a/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_measure_constraint_with_reused_measure__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_measure_constraint_with_reused_measure__plan0_optimized.sql
@@ -5,11 +5,12 @@ SELECT
FROM (
-- Combine Aggregated Outputs
SELECT
- COALESCE(subq_20.metric_time__day, subq_25.metric_time__day) AS metric_time__day
- , MAX(subq_20.booking_value_with_is_instant_constraint) AS booking_value_with_is_instant_constraint
- , MAX(subq_25.booking_value) AS booking_value
+ COALESCE(subq_19.metric_time__day, subq_24.metric_time__day) AS metric_time__day
+ , MAX(subq_19.booking_value_with_is_instant_constraint) AS booking_value_with_is_instant_constraint
+ , MAX(subq_24.booking_value) AS booking_value
FROM (
-- Constrain Output with WHERE
+ -- Pass Only Elements: ['booking_value', 'booking__is_instant', 'metric_time__day']
-- Pass Only Elements: ['booking_value', 'metric_time__day']
-- Aggregate Measures
-- Compute Metrics via Expressions
@@ -17,27 +18,18 @@ FROM (
metric_time__day
, SUM(booking_value) AS booking_value_with_is_instant_constraint
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['booking_value', 'booking__is_instant', 'metric_time__day']
+ -- Read Elements From Semantic Model 'bookings_source'
+ -- Metric Time Dimension 'ds'
SELECT
- metric_time__day
- , booking__is_instant
+ DATE_TRUNC('day', ds) AS metric_time__day
+ , is_instant AS booking__is_instant
, booking_value
- FROM (
- -- Read Elements From Semantic Model 'bookings_source'
- -- Metric Time Dimension 'ds'
- SELECT
- DATE_TRUNC('day', ds) AS metric_time__day
- , is_instant AS booking__is_instant
- , booking_value
- FROM ***************************.fct_bookings bookings_source_src_28000
- ) subq_14
- WHERE booking__is_instant
- ) subq_16
+ FROM ***************************.fct_bookings bookings_source_src_28000
+ ) subq_14
WHERE booking__is_instant
GROUP BY
metric_time__day
- ) subq_20
+ ) subq_19
FULL OUTER JOIN (
-- Read Elements From Semantic Model 'bookings_source'
-- Metric Time Dimension 'ds'
@@ -50,9 +42,9 @@ FROM (
FROM ***************************.fct_bookings bookings_source_src_28000
GROUP BY
DATE_TRUNC('day', ds)
- ) subq_25
+ ) subq_24
ON
- subq_20.metric_time__day = subq_25.metric_time__day
+ subq_19.metric_time__day = subq_24.metric_time__day
GROUP BY
- COALESCE(subq_20.metric_time__day, subq_25.metric_time__day)
-) subq_26
+ COALESCE(subq_19.metric_time__day, subq_24.metric_time__day)
+) subq_25
diff --git a/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_measure_constraint_with_single_expr_and_alias__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_measure_constraint_with_single_expr_and_alias__plan0_optimized.sql
index b1d886026c..478c021663 100644
--- a/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_measure_constraint_with_single_expr_and_alias__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_measure_constraint_with_single_expr_and_alias__plan0_optimized.sql
@@ -4,6 +4,7 @@ SELECT
, delayed_bookings * 2 AS double_counted_delayed_bookings
FROM (
-- Constrain Output with WHERE
+ -- Pass Only Elements: ['bookings', 'booking__is_instant', 'metric_time__day']
-- Pass Only Elements: ['bookings', 'metric_time__day']
-- Aggregate Measures
-- Compute Metrics via Expressions
@@ -11,24 +12,15 @@ FROM (
metric_time__day
, SUM(bookings) AS delayed_bookings
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['bookings', 'booking__is_instant', 'metric_time__day']
+ -- Read Elements From Semantic Model 'bookings_source'
+ -- Metric Time Dimension 'ds'
SELECT
- metric_time__day
- , booking__is_instant
- , bookings
- FROM (
- -- Read Elements From Semantic Model 'bookings_source'
- -- Metric Time Dimension 'ds'
- SELECT
- DATE_TRUNC('day', ds) AS metric_time__day
- , is_instant AS booking__is_instant
- , 1 AS bookings
- FROM ***************************.fct_bookings bookings_source_src_28000
- ) subq_8
- WHERE NOT booking__is_instant
- ) subq_10
+ DATE_TRUNC('day', ds) AS metric_time__day
+ , is_instant AS booking__is_instant
+ , 1 AS bookings
+ FROM ***************************.fct_bookings bookings_source_src_28000
+ ) subq_8
WHERE NOT booking__is_instant
GROUP BY
metric_time__day
-) subq_14
+) subq_13
diff --git a/tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/BigQuery/test_simple_join_to_time_spine_with_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/BigQuery/test_simple_join_to_time_spine_with_filter__plan0_optimized.sql
index 59cede2bfd..ecb1ad0528 100644
--- a/tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/BigQuery/test_simple_join_to_time_spine_with_filter__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/BigQuery/test_simple_join_to_time_spine_with_filter__plan0_optimized.sql
@@ -5,38 +5,30 @@ SELECT
FROM (
-- Join to Time Spine Dataset
SELECT
- subq_17.ds AS metric_time__day
- , subq_15.bookings AS bookings
- FROM ***************************.mf_time_spine subq_17
+ subq_16.ds AS metric_time__day
+ , subq_14.bookings AS bookings
+ FROM ***************************.mf_time_spine subq_16
LEFT OUTER JOIN (
-- Constrain Output with WHERE
+ -- Pass Only Elements: ['bookings', 'booking__is_instant', 'metric_time__day']
-- Pass Only Elements: ['bookings', 'metric_time__day']
-- Aggregate Measures
SELECT
metric_time__day
, SUM(bookings) AS bookings
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['bookings', 'booking__is_instant', 'metric_time__day']
+ -- Read Elements From Semantic Model 'bookings_source'
+ -- Metric Time Dimension 'ds'
SELECT
- metric_time__day
- , booking__is_instant
- , bookings
- FROM (
- -- Read Elements From Semantic Model 'bookings_source'
- -- Metric Time Dimension 'ds'
- SELECT
- DATETIME_TRUNC(ds, day) AS metric_time__day
- , is_instant AS booking__is_instant
- , 1 AS bookings
- FROM ***************************.fct_bookings bookings_source_src_28000
- ) subq_10
- WHERE booking__is_instant
- ) subq_12
+ DATETIME_TRUNC(ds, day) AS metric_time__day
+ , is_instant AS booking__is_instant
+ , 1 AS bookings
+ FROM ***************************.fct_bookings bookings_source_src_28000
+ ) subq_10
WHERE booking__is_instant
GROUP BY
metric_time__day
- ) subq_15
+ ) subq_14
ON
- subq_17.ds = subq_15.metric_time__day
-) subq_18
+ subq_16.ds = subq_14.metric_time__day
+) subq_17
diff --git a/tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/BigQuery/test_simple_join_to_time_spine_with_queried_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/BigQuery/test_simple_join_to_time_spine_with_queried_filter__plan0_optimized.sql
index b4ccdccf3a..41be8cd7d5 100644
--- a/tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/BigQuery/test_simple_join_to_time_spine_with_queried_filter__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/BigQuery/test_simple_join_to_time_spine_with_queried_filter__plan0_optimized.sql
@@ -12,42 +12,34 @@ FROM (
FROM (
-- Join to Time Spine Dataset
SELECT
- subq_16.ds AS metric_time__day
- , subq_14.booking__is_instant AS booking__is_instant
- , subq_14.bookings AS bookings
- FROM ***************************.mf_time_spine subq_16
+ subq_15.ds AS metric_time__day
+ , subq_13.booking__is_instant AS booking__is_instant
+ , subq_13.bookings AS bookings
+ FROM ***************************.mf_time_spine subq_15
LEFT OUTER JOIN (
-- Constrain Output with WHERE
+ -- Pass Only Elements: ['bookings', 'booking__is_instant', 'metric_time__day']
-- Aggregate Measures
SELECT
metric_time__day
, booking__is_instant
, SUM(bookings) AS bookings
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['bookings', 'booking__is_instant', 'metric_time__day']
+ -- Read Elements From Semantic Model 'bookings_source'
+ -- Metric Time Dimension 'ds'
SELECT
- metric_time__day
- , booking__is_instant
- , bookings
- FROM (
- -- Read Elements From Semantic Model 'bookings_source'
- -- Metric Time Dimension 'ds'
- SELECT
- DATETIME_TRUNC(ds, day) AS metric_time__day
- , is_instant AS booking__is_instant
- , 1 AS bookings
- FROM ***************************.fct_bookings bookings_source_src_28000
- ) subq_10
- WHERE booking__is_instant
- ) subq_12
+ DATETIME_TRUNC(ds, day) AS metric_time__day
+ , is_instant AS booking__is_instant
+ , 1 AS bookings
+ FROM ***************************.fct_bookings bookings_source_src_28000
+ ) subq_10
WHERE booking__is_instant
GROUP BY
metric_time__day
, booking__is_instant
- ) subq_14
+ ) subq_13
ON
- subq_16.ds = subq_14.metric_time__day
- ) subq_17
+ subq_15.ds = subq_13.metric_time__day
+ ) subq_16
WHERE booking__is_instant
-) subq_18
+) subq_17
diff --git a/tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Databricks/test_simple_join_to_time_spine_with_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Databricks/test_simple_join_to_time_spine_with_filter__plan0_optimized.sql
index 7c2aec5595..9a4f540d4c 100644
--- a/tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Databricks/test_simple_join_to_time_spine_with_filter__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Databricks/test_simple_join_to_time_spine_with_filter__plan0_optimized.sql
@@ -5,38 +5,30 @@ SELECT
FROM (
-- Join to Time Spine Dataset
SELECT
- subq_17.ds AS metric_time__day
- , subq_15.bookings AS bookings
- FROM ***************************.mf_time_spine subq_17
+ subq_16.ds AS metric_time__day
+ , subq_14.bookings AS bookings
+ FROM ***************************.mf_time_spine subq_16
LEFT OUTER JOIN (
-- Constrain Output with WHERE
+ -- Pass Only Elements: ['bookings', 'booking__is_instant', 'metric_time__day']
-- Pass Only Elements: ['bookings', 'metric_time__day']
-- Aggregate Measures
SELECT
metric_time__day
, SUM(bookings) AS bookings
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['bookings', 'booking__is_instant', 'metric_time__day']
+ -- Read Elements From Semantic Model 'bookings_source'
+ -- Metric Time Dimension 'ds'
SELECT
- metric_time__day
- , booking__is_instant
- , bookings
- FROM (
- -- Read Elements From Semantic Model 'bookings_source'
- -- Metric Time Dimension 'ds'
- SELECT
- DATE_TRUNC('day', ds) AS metric_time__day
- , is_instant AS booking__is_instant
- , 1 AS bookings
- FROM ***************************.fct_bookings bookings_source_src_28000
- ) subq_10
- WHERE booking__is_instant
- ) subq_12
+ DATE_TRUNC('day', ds) AS metric_time__day
+ , is_instant AS booking__is_instant
+ , 1 AS bookings
+ FROM ***************************.fct_bookings bookings_source_src_28000
+ ) subq_10
WHERE booking__is_instant
GROUP BY
metric_time__day
- ) subq_15
+ ) subq_14
ON
- subq_17.ds = subq_15.metric_time__day
-) subq_18
+ subq_16.ds = subq_14.metric_time__day
+) subq_17
diff --git a/tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Databricks/test_simple_join_to_time_spine_with_queried_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Databricks/test_simple_join_to_time_spine_with_queried_filter__plan0_optimized.sql
index 115a26fbd7..19f81cdd9b 100644
--- a/tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Databricks/test_simple_join_to_time_spine_with_queried_filter__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Databricks/test_simple_join_to_time_spine_with_queried_filter__plan0_optimized.sql
@@ -12,42 +12,34 @@ FROM (
FROM (
-- Join to Time Spine Dataset
SELECT
- subq_16.ds AS metric_time__day
- , subq_14.booking__is_instant AS booking__is_instant
- , subq_14.bookings AS bookings
- FROM ***************************.mf_time_spine subq_16
+ subq_15.ds AS metric_time__day
+ , subq_13.booking__is_instant AS booking__is_instant
+ , subq_13.bookings AS bookings
+ FROM ***************************.mf_time_spine subq_15
LEFT OUTER JOIN (
-- Constrain Output with WHERE
+ -- Pass Only Elements: ['bookings', 'booking__is_instant', 'metric_time__day']
-- Aggregate Measures
SELECT
metric_time__day
, booking__is_instant
, SUM(bookings) AS bookings
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['bookings', 'booking__is_instant', 'metric_time__day']
+ -- Read Elements From Semantic Model 'bookings_source'
+ -- Metric Time Dimension 'ds'
SELECT
- metric_time__day
- , booking__is_instant
- , bookings
- FROM (
- -- Read Elements From Semantic Model 'bookings_source'
- -- Metric Time Dimension 'ds'
- SELECT
- DATE_TRUNC('day', ds) AS metric_time__day
- , is_instant AS booking__is_instant
- , 1 AS bookings
- FROM ***************************.fct_bookings bookings_source_src_28000
- ) subq_10
- WHERE booking__is_instant
- ) subq_12
+ DATE_TRUNC('day', ds) AS metric_time__day
+ , is_instant AS booking__is_instant
+ , 1 AS bookings
+ FROM ***************************.fct_bookings bookings_source_src_28000
+ ) subq_10
WHERE booking__is_instant
GROUP BY
metric_time__day
, booking__is_instant
- ) subq_14
+ ) subq_13
ON
- subq_16.ds = subq_14.metric_time__day
- ) subq_17
+ subq_15.ds = subq_13.metric_time__day
+ ) subq_16
WHERE booking__is_instant
-) subq_18
+) subq_17
diff --git a/tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/DuckDB/test_simple_join_to_time_spine_with_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/DuckDB/test_simple_join_to_time_spine_with_filter__plan0_optimized.sql
index 7c2aec5595..9a4f540d4c 100644
--- a/tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/DuckDB/test_simple_join_to_time_spine_with_filter__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/DuckDB/test_simple_join_to_time_spine_with_filter__plan0_optimized.sql
@@ -5,38 +5,30 @@ SELECT
FROM (
-- Join to Time Spine Dataset
SELECT
- subq_17.ds AS metric_time__day
- , subq_15.bookings AS bookings
- FROM ***************************.mf_time_spine subq_17
+ subq_16.ds AS metric_time__day
+ , subq_14.bookings AS bookings
+ FROM ***************************.mf_time_spine subq_16
LEFT OUTER JOIN (
-- Constrain Output with WHERE
+ -- Pass Only Elements: ['bookings', 'booking__is_instant', 'metric_time__day']
-- Pass Only Elements: ['bookings', 'metric_time__day']
-- Aggregate Measures
SELECT
metric_time__day
, SUM(bookings) AS bookings
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['bookings', 'booking__is_instant', 'metric_time__day']
+ -- Read Elements From Semantic Model 'bookings_source'
+ -- Metric Time Dimension 'ds'
SELECT
- metric_time__day
- , booking__is_instant
- , bookings
- FROM (
- -- Read Elements From Semantic Model 'bookings_source'
- -- Metric Time Dimension 'ds'
- SELECT
- DATE_TRUNC('day', ds) AS metric_time__day
- , is_instant AS booking__is_instant
- , 1 AS bookings
- FROM ***************************.fct_bookings bookings_source_src_28000
- ) subq_10
- WHERE booking__is_instant
- ) subq_12
+ DATE_TRUNC('day', ds) AS metric_time__day
+ , is_instant AS booking__is_instant
+ , 1 AS bookings
+ FROM ***************************.fct_bookings bookings_source_src_28000
+ ) subq_10
WHERE booking__is_instant
GROUP BY
metric_time__day
- ) subq_15
+ ) subq_14
ON
- subq_17.ds = subq_15.metric_time__day
-) subq_18
+ subq_16.ds = subq_14.metric_time__day
+) subq_17
diff --git a/tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/DuckDB/test_simple_join_to_time_spine_with_queried_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/DuckDB/test_simple_join_to_time_spine_with_queried_filter__plan0_optimized.sql
index 115a26fbd7..19f81cdd9b 100644
--- a/tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/DuckDB/test_simple_join_to_time_spine_with_queried_filter__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/DuckDB/test_simple_join_to_time_spine_with_queried_filter__plan0_optimized.sql
@@ -12,42 +12,34 @@ FROM (
FROM (
-- Join to Time Spine Dataset
SELECT
- subq_16.ds AS metric_time__day
- , subq_14.booking__is_instant AS booking__is_instant
- , subq_14.bookings AS bookings
- FROM ***************************.mf_time_spine subq_16
+ subq_15.ds AS metric_time__day
+ , subq_13.booking__is_instant AS booking__is_instant
+ , subq_13.bookings AS bookings
+ FROM ***************************.mf_time_spine subq_15
LEFT OUTER JOIN (
-- Constrain Output with WHERE
+ -- Pass Only Elements: ['bookings', 'booking__is_instant', 'metric_time__day']
-- Aggregate Measures
SELECT
metric_time__day
, booking__is_instant
, SUM(bookings) AS bookings
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['bookings', 'booking__is_instant', 'metric_time__day']
+ -- Read Elements From Semantic Model 'bookings_source'
+ -- Metric Time Dimension 'ds'
SELECT
- metric_time__day
- , booking__is_instant
- , bookings
- FROM (
- -- Read Elements From Semantic Model 'bookings_source'
- -- Metric Time Dimension 'ds'
- SELECT
- DATE_TRUNC('day', ds) AS metric_time__day
- , is_instant AS booking__is_instant
- , 1 AS bookings
- FROM ***************************.fct_bookings bookings_source_src_28000
- ) subq_10
- WHERE booking__is_instant
- ) subq_12
+ DATE_TRUNC('day', ds) AS metric_time__day
+ , is_instant AS booking__is_instant
+ , 1 AS bookings
+ FROM ***************************.fct_bookings bookings_source_src_28000
+ ) subq_10
WHERE booking__is_instant
GROUP BY
metric_time__day
, booking__is_instant
- ) subq_14
+ ) subq_13
ON
- subq_16.ds = subq_14.metric_time__day
- ) subq_17
+ subq_15.ds = subq_13.metric_time__day
+ ) subq_16
WHERE booking__is_instant
-) subq_18
+) subq_17
diff --git a/tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Postgres/test_simple_join_to_time_spine_with_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Postgres/test_simple_join_to_time_spine_with_filter__plan0_optimized.sql
index 7c2aec5595..9a4f540d4c 100644
--- a/tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Postgres/test_simple_join_to_time_spine_with_filter__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Postgres/test_simple_join_to_time_spine_with_filter__plan0_optimized.sql
@@ -5,38 +5,30 @@ SELECT
FROM (
-- Join to Time Spine Dataset
SELECT
- subq_17.ds AS metric_time__day
- , subq_15.bookings AS bookings
- FROM ***************************.mf_time_spine subq_17
+ subq_16.ds AS metric_time__day
+ , subq_14.bookings AS bookings
+ FROM ***************************.mf_time_spine subq_16
LEFT OUTER JOIN (
-- Constrain Output with WHERE
+ -- Pass Only Elements: ['bookings', 'booking__is_instant', 'metric_time__day']
-- Pass Only Elements: ['bookings', 'metric_time__day']
-- Aggregate Measures
SELECT
metric_time__day
, SUM(bookings) AS bookings
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['bookings', 'booking__is_instant', 'metric_time__day']
+ -- Read Elements From Semantic Model 'bookings_source'
+ -- Metric Time Dimension 'ds'
SELECT
- metric_time__day
- , booking__is_instant
- , bookings
- FROM (
- -- Read Elements From Semantic Model 'bookings_source'
- -- Metric Time Dimension 'ds'
- SELECT
- DATE_TRUNC('day', ds) AS metric_time__day
- , is_instant AS booking__is_instant
- , 1 AS bookings
- FROM ***************************.fct_bookings bookings_source_src_28000
- ) subq_10
- WHERE booking__is_instant
- ) subq_12
+ DATE_TRUNC('day', ds) AS metric_time__day
+ , is_instant AS booking__is_instant
+ , 1 AS bookings
+ FROM ***************************.fct_bookings bookings_source_src_28000
+ ) subq_10
WHERE booking__is_instant
GROUP BY
metric_time__day
- ) subq_15
+ ) subq_14
ON
- subq_17.ds = subq_15.metric_time__day
-) subq_18
+ subq_16.ds = subq_14.metric_time__day
+) subq_17
diff --git a/tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Postgres/test_simple_join_to_time_spine_with_queried_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Postgres/test_simple_join_to_time_spine_with_queried_filter__plan0_optimized.sql
index 115a26fbd7..19f81cdd9b 100644
--- a/tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Postgres/test_simple_join_to_time_spine_with_queried_filter__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Postgres/test_simple_join_to_time_spine_with_queried_filter__plan0_optimized.sql
@@ -12,42 +12,34 @@ FROM (
FROM (
-- Join to Time Spine Dataset
SELECT
- subq_16.ds AS metric_time__day
- , subq_14.booking__is_instant AS booking__is_instant
- , subq_14.bookings AS bookings
- FROM ***************************.mf_time_spine subq_16
+ subq_15.ds AS metric_time__day
+ , subq_13.booking__is_instant AS booking__is_instant
+ , subq_13.bookings AS bookings
+ FROM ***************************.mf_time_spine subq_15
LEFT OUTER JOIN (
-- Constrain Output with WHERE
+ -- Pass Only Elements: ['bookings', 'booking__is_instant', 'metric_time__day']
-- Aggregate Measures
SELECT
metric_time__day
, booking__is_instant
, SUM(bookings) AS bookings
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['bookings', 'booking__is_instant', 'metric_time__day']
+ -- Read Elements From Semantic Model 'bookings_source'
+ -- Metric Time Dimension 'ds'
SELECT
- metric_time__day
- , booking__is_instant
- , bookings
- FROM (
- -- Read Elements From Semantic Model 'bookings_source'
- -- Metric Time Dimension 'ds'
- SELECT
- DATE_TRUNC('day', ds) AS metric_time__day
- , is_instant AS booking__is_instant
- , 1 AS bookings
- FROM ***************************.fct_bookings bookings_source_src_28000
- ) subq_10
- WHERE booking__is_instant
- ) subq_12
+ DATE_TRUNC('day', ds) AS metric_time__day
+ , is_instant AS booking__is_instant
+ , 1 AS bookings
+ FROM ***************************.fct_bookings bookings_source_src_28000
+ ) subq_10
WHERE booking__is_instant
GROUP BY
metric_time__day
, booking__is_instant
- ) subq_14
+ ) subq_13
ON
- subq_16.ds = subq_14.metric_time__day
- ) subq_17
+ subq_15.ds = subq_13.metric_time__day
+ ) subq_16
WHERE booking__is_instant
-) subq_18
+) subq_17
diff --git a/tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Redshift/test_simple_join_to_time_spine_with_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Redshift/test_simple_join_to_time_spine_with_filter__plan0_optimized.sql
index 7c2aec5595..9a4f540d4c 100644
--- a/tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Redshift/test_simple_join_to_time_spine_with_filter__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Redshift/test_simple_join_to_time_spine_with_filter__plan0_optimized.sql
@@ -5,38 +5,30 @@ SELECT
FROM (
-- Join to Time Spine Dataset
SELECT
- subq_17.ds AS metric_time__day
- , subq_15.bookings AS bookings
- FROM ***************************.mf_time_spine subq_17
+ subq_16.ds AS metric_time__day
+ , subq_14.bookings AS bookings
+ FROM ***************************.mf_time_spine subq_16
LEFT OUTER JOIN (
-- Constrain Output with WHERE
+ -- Pass Only Elements: ['bookings', 'booking__is_instant', 'metric_time__day']
-- Pass Only Elements: ['bookings', 'metric_time__day']
-- Aggregate Measures
SELECT
metric_time__day
, SUM(bookings) AS bookings
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['bookings', 'booking__is_instant', 'metric_time__day']
+ -- Read Elements From Semantic Model 'bookings_source'
+ -- Metric Time Dimension 'ds'
SELECT
- metric_time__day
- , booking__is_instant
- , bookings
- FROM (
- -- Read Elements From Semantic Model 'bookings_source'
- -- Metric Time Dimension 'ds'
- SELECT
- DATE_TRUNC('day', ds) AS metric_time__day
- , is_instant AS booking__is_instant
- , 1 AS bookings
- FROM ***************************.fct_bookings bookings_source_src_28000
- ) subq_10
- WHERE booking__is_instant
- ) subq_12
+ DATE_TRUNC('day', ds) AS metric_time__day
+ , is_instant AS booking__is_instant
+ , 1 AS bookings
+ FROM ***************************.fct_bookings bookings_source_src_28000
+ ) subq_10
WHERE booking__is_instant
GROUP BY
metric_time__day
- ) subq_15
+ ) subq_14
ON
- subq_17.ds = subq_15.metric_time__day
-) subq_18
+ subq_16.ds = subq_14.metric_time__day
+) subq_17
diff --git a/tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Redshift/test_simple_join_to_time_spine_with_queried_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Redshift/test_simple_join_to_time_spine_with_queried_filter__plan0_optimized.sql
index 115a26fbd7..19f81cdd9b 100644
--- a/tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Redshift/test_simple_join_to_time_spine_with_queried_filter__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Redshift/test_simple_join_to_time_spine_with_queried_filter__plan0_optimized.sql
@@ -12,42 +12,34 @@ FROM (
FROM (
-- Join to Time Spine Dataset
SELECT
- subq_16.ds AS metric_time__day
- , subq_14.booking__is_instant AS booking__is_instant
- , subq_14.bookings AS bookings
- FROM ***************************.mf_time_spine subq_16
+ subq_15.ds AS metric_time__day
+ , subq_13.booking__is_instant AS booking__is_instant
+ , subq_13.bookings AS bookings
+ FROM ***************************.mf_time_spine subq_15
LEFT OUTER JOIN (
-- Constrain Output with WHERE
+ -- Pass Only Elements: ['bookings', 'booking__is_instant', 'metric_time__day']
-- Aggregate Measures
SELECT
metric_time__day
, booking__is_instant
, SUM(bookings) AS bookings
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['bookings', 'booking__is_instant', 'metric_time__day']
+ -- Read Elements From Semantic Model 'bookings_source'
+ -- Metric Time Dimension 'ds'
SELECT
- metric_time__day
- , booking__is_instant
- , bookings
- FROM (
- -- Read Elements From Semantic Model 'bookings_source'
- -- Metric Time Dimension 'ds'
- SELECT
- DATE_TRUNC('day', ds) AS metric_time__day
- , is_instant AS booking__is_instant
- , 1 AS bookings
- FROM ***************************.fct_bookings bookings_source_src_28000
- ) subq_10
- WHERE booking__is_instant
- ) subq_12
+ DATE_TRUNC('day', ds) AS metric_time__day
+ , is_instant AS booking__is_instant
+ , 1 AS bookings
+ FROM ***************************.fct_bookings bookings_source_src_28000
+ ) subq_10
WHERE booking__is_instant
GROUP BY
metric_time__day
, booking__is_instant
- ) subq_14
+ ) subq_13
ON
- subq_16.ds = subq_14.metric_time__day
- ) subq_17
+ subq_15.ds = subq_13.metric_time__day
+ ) subq_16
WHERE booking__is_instant
-) subq_18
+) subq_17
diff --git a/tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Snowflake/test_simple_join_to_time_spine_with_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Snowflake/test_simple_join_to_time_spine_with_filter__plan0_optimized.sql
index 7c2aec5595..9a4f540d4c 100644
--- a/tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Snowflake/test_simple_join_to_time_spine_with_filter__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Snowflake/test_simple_join_to_time_spine_with_filter__plan0_optimized.sql
@@ -5,38 +5,30 @@ SELECT
FROM (
-- Join to Time Spine Dataset
SELECT
- subq_17.ds AS metric_time__day
- , subq_15.bookings AS bookings
- FROM ***************************.mf_time_spine subq_17
+ subq_16.ds AS metric_time__day
+ , subq_14.bookings AS bookings
+ FROM ***************************.mf_time_spine subq_16
LEFT OUTER JOIN (
-- Constrain Output with WHERE
+ -- Pass Only Elements: ['bookings', 'booking__is_instant', 'metric_time__day']
-- Pass Only Elements: ['bookings', 'metric_time__day']
-- Aggregate Measures
SELECT
metric_time__day
, SUM(bookings) AS bookings
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['bookings', 'booking__is_instant', 'metric_time__day']
+ -- Read Elements From Semantic Model 'bookings_source'
+ -- Metric Time Dimension 'ds'
SELECT
- metric_time__day
- , booking__is_instant
- , bookings
- FROM (
- -- Read Elements From Semantic Model 'bookings_source'
- -- Metric Time Dimension 'ds'
- SELECT
- DATE_TRUNC('day', ds) AS metric_time__day
- , is_instant AS booking__is_instant
- , 1 AS bookings
- FROM ***************************.fct_bookings bookings_source_src_28000
- ) subq_10
- WHERE booking__is_instant
- ) subq_12
+ DATE_TRUNC('day', ds) AS metric_time__day
+ , is_instant AS booking__is_instant
+ , 1 AS bookings
+ FROM ***************************.fct_bookings bookings_source_src_28000
+ ) subq_10
WHERE booking__is_instant
GROUP BY
metric_time__day
- ) subq_15
+ ) subq_14
ON
- subq_17.ds = subq_15.metric_time__day
-) subq_18
+ subq_16.ds = subq_14.metric_time__day
+) subq_17
diff --git a/tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Snowflake/test_simple_join_to_time_spine_with_queried_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Snowflake/test_simple_join_to_time_spine_with_queried_filter__plan0_optimized.sql
index 115a26fbd7..19f81cdd9b 100644
--- a/tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Snowflake/test_simple_join_to_time_spine_with_queried_filter__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Snowflake/test_simple_join_to_time_spine_with_queried_filter__plan0_optimized.sql
@@ -12,42 +12,34 @@ FROM (
FROM (
-- Join to Time Spine Dataset
SELECT
- subq_16.ds AS metric_time__day
- , subq_14.booking__is_instant AS booking__is_instant
- , subq_14.bookings AS bookings
- FROM ***************************.mf_time_spine subq_16
+ subq_15.ds AS metric_time__day
+ , subq_13.booking__is_instant AS booking__is_instant
+ , subq_13.bookings AS bookings
+ FROM ***************************.mf_time_spine subq_15
LEFT OUTER JOIN (
-- Constrain Output with WHERE
+ -- Pass Only Elements: ['bookings', 'booking__is_instant', 'metric_time__day']
-- Aggregate Measures
SELECT
metric_time__day
, booking__is_instant
, SUM(bookings) AS bookings
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['bookings', 'booking__is_instant', 'metric_time__day']
+ -- Read Elements From Semantic Model 'bookings_source'
+ -- Metric Time Dimension 'ds'
SELECT
- metric_time__day
- , booking__is_instant
- , bookings
- FROM (
- -- Read Elements From Semantic Model 'bookings_source'
- -- Metric Time Dimension 'ds'
- SELECT
- DATE_TRUNC('day', ds) AS metric_time__day
- , is_instant AS booking__is_instant
- , 1 AS bookings
- FROM ***************************.fct_bookings bookings_source_src_28000
- ) subq_10
- WHERE booking__is_instant
- ) subq_12
+ DATE_TRUNC('day', ds) AS metric_time__day
+ , is_instant AS booking__is_instant
+ , 1 AS bookings
+ FROM ***************************.fct_bookings bookings_source_src_28000
+ ) subq_10
WHERE booking__is_instant
GROUP BY
metric_time__day
, booking__is_instant
- ) subq_14
+ ) subq_13
ON
- subq_16.ds = subq_14.metric_time__day
- ) subq_17
+ subq_15.ds = subq_13.metric_time__day
+ ) subq_16
WHERE booking__is_instant
-) subq_18
+) subq_17
diff --git a/tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Trino/test_simple_join_to_time_spine_with_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Trino/test_simple_join_to_time_spine_with_filter__plan0_optimized.sql
index 7c2aec5595..9a4f540d4c 100644
--- a/tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Trino/test_simple_join_to_time_spine_with_filter__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Trino/test_simple_join_to_time_spine_with_filter__plan0_optimized.sql
@@ -5,38 +5,30 @@ SELECT
FROM (
-- Join to Time Spine Dataset
SELECT
- subq_17.ds AS metric_time__day
- , subq_15.bookings AS bookings
- FROM ***************************.mf_time_spine subq_17
+ subq_16.ds AS metric_time__day
+ , subq_14.bookings AS bookings
+ FROM ***************************.mf_time_spine subq_16
LEFT OUTER JOIN (
-- Constrain Output with WHERE
+ -- Pass Only Elements: ['bookings', 'booking__is_instant', 'metric_time__day']
-- Pass Only Elements: ['bookings', 'metric_time__day']
-- Aggregate Measures
SELECT
metric_time__day
, SUM(bookings) AS bookings
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['bookings', 'booking__is_instant', 'metric_time__day']
+ -- Read Elements From Semantic Model 'bookings_source'
+ -- Metric Time Dimension 'ds'
SELECT
- metric_time__day
- , booking__is_instant
- , bookings
- FROM (
- -- Read Elements From Semantic Model 'bookings_source'
- -- Metric Time Dimension 'ds'
- SELECT
- DATE_TRUNC('day', ds) AS metric_time__day
- , is_instant AS booking__is_instant
- , 1 AS bookings
- FROM ***************************.fct_bookings bookings_source_src_28000
- ) subq_10
- WHERE booking__is_instant
- ) subq_12
+ DATE_TRUNC('day', ds) AS metric_time__day
+ , is_instant AS booking__is_instant
+ , 1 AS bookings
+ FROM ***************************.fct_bookings bookings_source_src_28000
+ ) subq_10
WHERE booking__is_instant
GROUP BY
metric_time__day
- ) subq_15
+ ) subq_14
ON
- subq_17.ds = subq_15.metric_time__day
-) subq_18
+ subq_16.ds = subq_14.metric_time__day
+) subq_17
diff --git a/tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Trino/test_simple_join_to_time_spine_with_queried_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Trino/test_simple_join_to_time_spine_with_queried_filter__plan0_optimized.sql
index 115a26fbd7..19f81cdd9b 100644
--- a/tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Trino/test_simple_join_to_time_spine_with_queried_filter__plan0_optimized.sql
+++ b/tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Trino/test_simple_join_to_time_spine_with_queried_filter__plan0_optimized.sql
@@ -12,42 +12,34 @@ FROM (
FROM (
-- Join to Time Spine Dataset
SELECT
- subq_16.ds AS metric_time__day
- , subq_14.booking__is_instant AS booking__is_instant
- , subq_14.bookings AS bookings
- FROM ***************************.mf_time_spine subq_16
+ subq_15.ds AS metric_time__day
+ , subq_13.booking__is_instant AS booking__is_instant
+ , subq_13.bookings AS bookings
+ FROM ***************************.mf_time_spine subq_15
LEFT OUTER JOIN (
-- Constrain Output with WHERE
+ -- Pass Only Elements: ['bookings', 'booking__is_instant', 'metric_time__day']
-- Aggregate Measures
SELECT
metric_time__day
, booking__is_instant
, SUM(bookings) AS bookings
FROM (
- -- Constrain Output with WHERE
- -- Pass Only Elements: ['bookings', 'booking__is_instant', 'metric_time__day']
+ -- Read Elements From Semantic Model 'bookings_source'
+ -- Metric Time Dimension 'ds'
SELECT
- metric_time__day
- , booking__is_instant
- , bookings
- FROM (
- -- Read Elements From Semantic Model 'bookings_source'
- -- Metric Time Dimension 'ds'
- SELECT
- DATE_TRUNC('day', ds) AS metric_time__day
- , is_instant AS booking__is_instant
- , 1 AS bookings
- FROM ***************************.fct_bookings bookings_source_src_28000
- ) subq_10
- WHERE booking__is_instant
- ) subq_12
+ DATE_TRUNC('day', ds) AS metric_time__day
+ , is_instant AS booking__is_instant
+ , 1 AS bookings
+ FROM ***************************.fct_bookings bookings_source_src_28000
+ ) subq_10
WHERE booking__is_instant
GROUP BY
metric_time__day
, booking__is_instant
- ) subq_14
+ ) subq_13
ON
- subq_16.ds = subq_14.metric_time__day
- ) subq_17
+ subq_15.ds = subq_13.metric_time__day
+ ) subq_16
WHERE booking__is_instant
-) subq_18
+) subq_17