Skip to content

Commit de6592d

Browse files
committed
Update snapshots for DuckDB.
1 parent c1c1f66 commit de6592d

12 files changed

+453
-455
lines changed

tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/DuckDB/test_conversion_count_with_no_group_by__plan0_optimized.sql

Lines changed: 38 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,25 @@ sql_engine: DuckDB
66
---
77
-- Combine Aggregated Outputs
88
-- Compute Metrics via Expressions
9-
SELECT
10-
COALESCE(MAX(subq_28.buys), 0) AS visit_buy_conversions
11-
FROM (
9+
WITH sma_28019_cte AS (
1210
-- Read Elements From Semantic Model 'visits_source'
1311
-- Metric Time Dimension 'ds'
12+
SELECT
13+
DATE_TRUNC('day', ds) AS metric_time__day
14+
, user_id AS user
15+
, 1 AS visits
16+
FROM ***************************.fct_visits visits_source_src_28000
17+
)
18+
19+
SELECT
20+
COALESCE(MAX(subq_27.buys), 0) AS visit_buy_conversions
21+
FROM (
22+
-- Read From CTE For node_id=sma_28019
1423
-- Pass Only Elements: ['visits',]
1524
-- Aggregate Measures
1625
SELECT
17-
SUM(1) AS visits
18-
FROM ***************************.fct_visits visits_source_src_28000
26+
SUM(visits) AS visits
27+
FROM sma_28019_cte sma_28019_cte
1928
) subq_18
2029
CROSS JOIN (
2130
-- Find conversions for user within the range of 7 day
@@ -26,42 +35,33 @@ CROSS JOIN (
2635
FROM (
2736
-- Dedupe the fanout with mf_internal_uuid in the conversion data set
2837
SELECT DISTINCT
29-
FIRST_VALUE(subq_21.visits) OVER (
38+
FIRST_VALUE(sma_28019_cte.visits) OVER (
3039
PARTITION BY
31-
subq_24.user
32-
, subq_24.metric_time__day
33-
, subq_24.mf_internal_uuid
34-
ORDER BY subq_21.metric_time__day DESC
40+
subq_23.user
41+
, subq_23.metric_time__day
42+
, subq_23.mf_internal_uuid
43+
ORDER BY sma_28019_cte.metric_time__day DESC
3544
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
3645
) AS visits
37-
, FIRST_VALUE(subq_21.metric_time__day) OVER (
46+
, FIRST_VALUE(sma_28019_cte.metric_time__day) OVER (
3847
PARTITION BY
39-
subq_24.user
40-
, subq_24.metric_time__day
41-
, subq_24.mf_internal_uuid
42-
ORDER BY subq_21.metric_time__day DESC
48+
subq_23.user
49+
, subq_23.metric_time__day
50+
, subq_23.mf_internal_uuid
51+
ORDER BY sma_28019_cte.metric_time__day DESC
4352
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
4453
) AS metric_time__day
45-
, FIRST_VALUE(subq_21.user) OVER (
54+
, FIRST_VALUE(sma_28019_cte.user) OVER (
4655
PARTITION BY
47-
subq_24.user
48-
, subq_24.metric_time__day
49-
, subq_24.mf_internal_uuid
50-
ORDER BY subq_21.metric_time__day DESC
56+
subq_23.user
57+
, subq_23.metric_time__day
58+
, subq_23.mf_internal_uuid
59+
ORDER BY sma_28019_cte.metric_time__day DESC
5160
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
5261
) AS user
53-
, subq_24.mf_internal_uuid AS mf_internal_uuid
54-
, subq_24.buys AS buys
55-
FROM (
56-
-- Read Elements From Semantic Model 'visits_source'
57-
-- Metric Time Dimension 'ds'
58-
-- Pass Only Elements: ['visits', 'metric_time__day', 'user']
59-
SELECT
60-
DATE_TRUNC('day', ds) AS metric_time__day
61-
, user_id AS user
62-
, 1 AS visits
63-
FROM ***************************.fct_visits visits_source_src_28000
64-
) subq_21
62+
, subq_23.mf_internal_uuid AS mf_internal_uuid
63+
, subq_23.buys AS buys
64+
FROM sma_28019_cte sma_28019_cte
6565
INNER JOIN (
6666
-- Read Elements From Semantic Model 'buys_source'
6767
-- Metric Time Dimension 'ds'
@@ -72,16 +72,16 @@ CROSS JOIN (
7272
, 1 AS buys
7373
, GEN_RANDOM_UUID() AS mf_internal_uuid
7474
FROM ***************************.fct_buys buys_source_src_28000
75-
) subq_24
75+
) subq_23
7676
ON
7777
(
78-
subq_21.user = subq_24.user
78+
sma_28019_cte.user = subq_23.user
7979
) AND (
8080
(
81-
subq_21.metric_time__day <= subq_24.metric_time__day
81+
sma_28019_cte.metric_time__day <= subq_23.metric_time__day
8282
) AND (
83-
subq_21.metric_time__day > subq_24.metric_time__day - INTERVAL 7 day
83+
sma_28019_cte.metric_time__day > subq_23.metric_time__day - INTERVAL 7 day
8484
)
8585
)
86-
) subq_25
87-
) subq_28
86+
) subq_24
87+
) subq_27

tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/DuckDB/test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0_optimized.sql

Lines changed: 48 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -5,35 +5,39 @@ docstring:
55
sql_engine: DuckDB
66
---
77
-- Compute Metrics via Expressions
8+
WITH sma_28019_cte AS (
9+
-- Read Elements From Semantic Model 'visits_source'
10+
-- Metric Time Dimension 'ds'
11+
SELECT
12+
DATE_TRUNC('day', ds) AS metric_time__day
13+
, user_id AS user
14+
, 1 AS visits
15+
FROM ***************************.fct_visits visits_source_src_28000
16+
)
17+
818
SELECT
9-
metric_time__day
19+
metric_time__day AS metric_time__day
1020
, CAST(buys AS DOUBLE) / CAST(NULLIF(visits, 0) AS DOUBLE) AS visit_buy_conversion_rate_7days_fill_nulls_with_0
1121
FROM (
1222
-- Combine Aggregated Outputs
1323
SELECT
14-
COALESCE(subq_27.metric_time__day, subq_40.metric_time__day) AS metric_time__day
24+
COALESCE(subq_27.metric_time__day, subq_39.metric_time__day) AS metric_time__day
1525
, COALESCE(MAX(subq_27.visits), 0) AS visits
16-
, COALESCE(MAX(subq_40.buys), 0) AS buys
26+
, COALESCE(MAX(subq_39.buys), 0) AS buys
1727
FROM (
1828
-- Join to Time Spine Dataset
1929
SELECT
2030
subq_26.ds AS metric_time__day
2131
, subq_24.visits AS visits
2232
FROM ***************************.mf_time_spine subq_26
2333
LEFT OUTER JOIN (
34+
-- Read From CTE For node_id=sma_28019
35+
-- Pass Only Elements: ['visits', 'metric_time__day']
2436
-- Aggregate Measures
2537
SELECT
2638
metric_time__day
2739
, SUM(visits) AS visits
28-
FROM (
29-
-- Read Elements From Semantic Model 'visits_source'
30-
-- Metric Time Dimension 'ds'
31-
-- Pass Only Elements: ['visits', 'metric_time__day']
32-
SELECT
33-
DATE_TRUNC('day', ds) AS metric_time__day
34-
, 1 AS visits
35-
FROM ***************************.fct_visits visits_source_src_28000
36-
) subq_23
40+
FROM sma_28019_cte sma_28019_cte
3741
GROUP BY
3842
metric_time__day
3943
) subq_24
@@ -43,9 +47,9 @@ FROM (
4347
FULL OUTER JOIN (
4448
-- Join to Time Spine Dataset
4549
SELECT
46-
subq_39.ds AS metric_time__day
47-
, subq_37.buys AS buys
48-
FROM ***************************.mf_time_spine subq_39
50+
subq_38.ds AS metric_time__day
51+
, subq_36.buys AS buys
52+
FROM ***************************.mf_time_spine subq_38
4953
LEFT OUTER JOIN (
5054
-- Find conversions for user within the range of 7 day
5155
-- Pass Only Elements: ['buys', 'metric_time__day']
@@ -56,42 +60,33 @@ FROM (
5660
FROM (
5761
-- Dedupe the fanout with mf_internal_uuid in the conversion data set
5862
SELECT DISTINCT
59-
FIRST_VALUE(subq_30.visits) OVER (
63+
FIRST_VALUE(sma_28019_cte.visits) OVER (
6064
PARTITION BY
61-
subq_33.user
62-
, subq_33.metric_time__day
63-
, subq_33.mf_internal_uuid
64-
ORDER BY subq_30.metric_time__day DESC
65+
subq_32.user
66+
, subq_32.metric_time__day
67+
, subq_32.mf_internal_uuid
68+
ORDER BY sma_28019_cte.metric_time__day DESC
6569
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
6670
) AS visits
67-
, FIRST_VALUE(subq_30.metric_time__day) OVER (
71+
, FIRST_VALUE(sma_28019_cte.metric_time__day) OVER (
6872
PARTITION BY
69-
subq_33.user
70-
, subq_33.metric_time__day
71-
, subq_33.mf_internal_uuid
72-
ORDER BY subq_30.metric_time__day DESC
73+
subq_32.user
74+
, subq_32.metric_time__day
75+
, subq_32.mf_internal_uuid
76+
ORDER BY sma_28019_cte.metric_time__day DESC
7377
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
7478
) AS metric_time__day
75-
, FIRST_VALUE(subq_30.user) OVER (
79+
, FIRST_VALUE(sma_28019_cte.user) OVER (
7680
PARTITION BY
77-
subq_33.user
78-
, subq_33.metric_time__day
79-
, subq_33.mf_internal_uuid
80-
ORDER BY subq_30.metric_time__day DESC
81+
subq_32.user
82+
, subq_32.metric_time__day
83+
, subq_32.mf_internal_uuid
84+
ORDER BY sma_28019_cte.metric_time__day DESC
8185
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
8286
) AS user
83-
, subq_33.mf_internal_uuid AS mf_internal_uuid
84-
, subq_33.buys AS buys
85-
FROM (
86-
-- Read Elements From Semantic Model 'visits_source'
87-
-- Metric Time Dimension 'ds'
88-
-- Pass Only Elements: ['visits', 'metric_time__day', 'user']
89-
SELECT
90-
DATE_TRUNC('day', ds) AS metric_time__day
91-
, user_id AS user
92-
, 1 AS visits
93-
FROM ***************************.fct_visits visits_source_src_28000
94-
) subq_30
87+
, subq_32.mf_internal_uuid AS mf_internal_uuid
88+
, subq_32.buys AS buys
89+
FROM sma_28019_cte sma_28019_cte
9590
INNER JOIN (
9691
-- Read Elements From Semantic Model 'buys_source'
9792
-- Metric Time Dimension 'ds'
@@ -102,26 +97,26 @@ FROM (
10297
, 1 AS buys
10398
, GEN_RANDOM_UUID() AS mf_internal_uuid
10499
FROM ***************************.fct_buys buys_source_src_28000
105-
) subq_33
100+
) subq_32
106101
ON
107102
(
108-
subq_30.user = subq_33.user
103+
sma_28019_cte.user = subq_32.user
109104
) AND (
110105
(
111-
subq_30.metric_time__day <= subq_33.metric_time__day
106+
sma_28019_cte.metric_time__day <= subq_32.metric_time__day
112107
) AND (
113-
subq_30.metric_time__day > subq_33.metric_time__day - INTERVAL 7 day
108+
sma_28019_cte.metric_time__day > subq_32.metric_time__day - INTERVAL 7 day
114109
)
115110
)
116-
) subq_34
111+
) subq_33
117112
GROUP BY
118113
metric_time__day
119-
) subq_37
114+
) subq_36
120115
ON
121-
subq_39.ds = subq_37.metric_time__day
122-
) subq_40
116+
subq_38.ds = subq_36.metric_time__day
117+
) subq_39
123118
ON
124-
subq_27.metric_time__day = subq_40.metric_time__day
119+
subq_27.metric_time__day = subq_39.metric_time__day
125120
GROUP BY
126-
COALESCE(subq_27.metric_time__day, subq_40.metric_time__day)
127-
) subq_41
121+
COALESCE(subq_27.metric_time__day, subq_39.metric_time__day)
122+
) subq_40

0 commit comments

Comments
 (0)