Skip to content

Commit 9baf73d

Browse files
Merge pull request #57 from dbt-labs/hotfix__divide_by_zero_and_allowlist
Fixing Division By Zero and Allowing Expression Secondary Calculations
2 parents 65fe0f1 + 4341a57 commit 9baf73d

10 files changed

Lines changed: 1073 additions & 1169 deletions

File tree

integration_tests/dbt_project.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,11 @@ clean-targets:
2121
- "dbt_packages"
2222
- "logs"
2323

24+
models:
25+
dbt_metrics_integration_tests:
26+
metric_testing_models:
27+
+materialized: table
28+
2429
vars:
2530
dbt_metrics_calendar_model: custom_calendar
2631
testing: fact_orders

integration_tests/models/metric_definitions/expression_metric.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,16 @@ metrics:
77
time_grains: [day, week]
88
type: expression
99
sql: "{{metric('base_sum_metric')}} - {{metric('base_average_metric')}}"
10+
dimensions:
11+
- had_discount
12+
- order_country
13+
14+
- name: ratio_metric
15+
label: Ratio ($)
16+
timestamp: order_date
17+
time_grains: [day, week]
18+
type: expression
19+
sql: "{{metric('base_sum_metric')}} / {{metric('base_average_metric')}}"
1020
dimensions:
1121
- had_discount
1222
- order_country
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
select *
2+
from
3+
{{ metrics.calculate(
4+
metric('ratio_metric'),
5+
grain='day',
6+
dimensions=['had_discount']
7+
)
8+
}}
Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
with metric as (
21
select *
32
from
43
{{ metrics.calculate(
@@ -10,16 +9,4 @@ with metric as (
109
{"calculation": "period_over_period", "interval": 1, "comparison_strategy": "ratio"},
1110
]
1211
)
13-
}}
14-
)
15-
16-
select
17-
date_day
18-
,had_discount
19-
,base_sum_metric
20-
,cast(base_average_metric as float) as base_average_metric
21-
,base_sum_metric_pop_1mth
22-
,cast(base_sum_metric_ratio_to_1_day_ago as float) as base_sum_metric_ratio_to_1_day_ago
23-
,cast(base_average_metric_pop_1mth as float) as base_average_metric_pop_1mth
24-
,cast(base_average_metric_ratio_to_1_day_ago as float) as base_average_metric_ratio_to_1_day_ago
25-
from metric
12+
}}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
select *
2+
from
3+
{{ metrics.calculate(
4+
metric('ratio_metric'),
5+
grain='day',
6+
dimensions=['had_discount','order_country','is_weekend'],
7+
start_date = '2022-01-01',
8+
end_date = '2022-01-10')
9+
}}

0 commit comments

Comments
 (0)