Skip to content

Commit

Permalink
Add SQL engine snapshots
Browse files Browse the repository at this point in the history
  • Loading branch information
courtneyholcomb committed Oct 29, 2024
1 parent 876daf2 commit 55dd1ba
Show file tree
Hide file tree
Showing 36 changed files with 10,734 additions and 0 deletions.

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,139 @@
-- Compute Metrics via Expressions
SELECT
metric_time__martian_day
, CAST(buys AS FLOAT64) / CAST(NULLIF(visits, 0) AS FLOAT64) AS visit_buy_conversion_rate_7days
FROM (
-- Combine Aggregated Outputs
SELECT
COALESCE(subq_24.metric_time__martian_day, subq_36.metric_time__martian_day) AS metric_time__martian_day
, MAX(subq_24.visits) AS visits
, MAX(subq_36.buys) AS buys
FROM (
-- Pass Only Elements: ['visits', 'metric_time__day']
-- Join to Custom Granularity Dataset
-- Pass Only Elements: ['visits', 'metric_time__martian_day']
-- Aggregate Measures
SELECT
subq_21.martian_day AS metric_time__martian_day
, SUM(subq_20.visits) AS visits
FROM (
-- Read Elements From Semantic Model 'visits_source'
-- Metric Time Dimension 'ds'
SELECT
DATETIME_TRUNC(ds, day) AS metric_time__day
, 1 AS visits
FROM ***************************.fct_visits visits_source_src_28000
) subq_20
LEFT OUTER JOIN
***************************.mf_time_spine subq_21
ON
subq_20.metric_time__day = subq_21.ds
GROUP BY
metric_time__martian_day
) subq_24
FULL OUTER JOIN (
-- Find conversions for user within the range of 7 day
-- Pass Only Elements: ['buys', 'metric_time__martian_day']
-- Pass Only Elements: ['buys', 'metric_time__martian_day']
-- Aggregate Measures
SELECT
metric_time__martian_day
, SUM(buys) AS buys
FROM (
-- Dedupe the fanout with mf_internal_uuid in the conversion data set
SELECT DISTINCT
FIRST_VALUE(subq_28.visits) OVER (
PARTITION BY
subq_31.user
, subq_31.ds__day
, subq_31.mf_internal_uuid
ORDER BY subq_28.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS visits
, FIRST_VALUE(subq_28.metric_time__martian_day) OVER (
PARTITION BY
subq_31.user
, subq_31.ds__day
, subq_31.mf_internal_uuid
ORDER BY subq_28.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS metric_time__martian_day
, FIRST_VALUE(subq_28.ds__day) OVER (
PARTITION BY
subq_31.user
, subq_31.ds__day
, subq_31.mf_internal_uuid
ORDER BY subq_28.ds__day DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS ds__day
, FIRST_VALUE(subq_28.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
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS metric_time__day
, FIRST_VALUE(subq_28.user) OVER (
PARTITION BY
subq_31.user
, subq_31.ds__day
, subq_31.mf_internal_uuid
ORDER BY subq_28.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
FROM (
-- Metric Time Dimension 'ds'
-- Join to Custom Granularity Dataset
-- Pass Only Elements: ['visits', 'ds__day', 'metric_time__day', 'metric_time__martian_day', 'user']
SELECT
subq_26.martian_day AS metric_time__martian_day
, subq_25.ds__day AS ds__day
, subq_25.ds__day AS metric_time__day
, subq_25.user AS user
, subq_25.visits AS visits
FROM (
-- Read Elements From Semantic Model 'visits_source'
SELECT
1 AS visits
, DATETIME_TRUNC(ds, day) AS ds__day
, user_id AS user
FROM ***************************.fct_visits visits_source_src_28000
) subq_25
LEFT OUTER JOIN
***************************.mf_time_spine subq_26
ON
subq_25.ds__day = subq_26.ds
) subq_28
INNER JOIN (
-- Read Elements From Semantic Model 'buys_source'
-- Metric Time Dimension 'ds'
-- Add column with generated UUID
SELECT
DATETIME_TRUNC(ds, day) AS ds__day
, user_id AS user
, 1 AS buys
, GENERATE_UUID() AS mf_internal_uuid
FROM ***************************.fct_buys buys_source_src_28000
) subq_31
ON
(
subq_28.user = subq_31.user
) AND (
(
subq_28.ds__day <= subq_31.ds__day
) AND (
subq_28.ds__day > DATE_SUB(CAST(subq_31.ds__day AS DATETIME), INTERVAL 7 day)
)
)
) subq_32
GROUP BY
metric_time__martian_day
) subq_36
ON
subq_24.metric_time__martian_day = subq_36.metric_time__martian_day
GROUP BY
metric_time__martian_day
) subq_37
Loading

0 comments on commit 55dd1ba

Please sign in to comment.