Skip to content

Commit ab39bc7

Browse files
author
“LAKSHMIRPILLAI”
committed
Update Super mode query for epic views
1 parent 8f0e34f commit ab39bc7

File tree

1 file changed

+60
-87
lines changed

1 file changed

+60
-87
lines changed

super-mode-calculator/src/lib/build-query.ts

+60-87
Original file line numberDiff line numberDiff line change
@@ -31,117 +31,90 @@ export const buildQueryForSuperMode = (
3131
WITH
3232
acquisitions_with_regions AS (SELECT *,${regionSql('country_Code')}
3333
FROM datatech-platform-${stage.toLowerCase()}.datalake.fact_acquisition_event
34-
WHERE
35-
DATE (event_timestamp) >= '${dateString}'
36-
AND
37-
event_timestamp >= TIMESTAMP '${dateHourString}' AND event_timestamp < TIMESTAMP '${endDateHourString}'),
34+
WHERE DATE (event_timestamp) >= '${dateString}' AND
35+
event_timestamp >= TIMESTAMP '${dateHourString}' AND event_timestamp < TIMESTAMP '${endDateHourString}'),
3836
exchange_rates AS (
3937
SELECT target, date, (1/rate) AS reverse_rate
4038
FROM datatech-platform-${stage.toLowerCase()}.datalake.fixer_exchange_rates
4139
WHERE date = '${format(dateForCurrencyConversionTable, 'yyyy-MM-dd')}'),
4240
gbp_rate AS (
43-
SELECT
44-
rate, date
41+
SELECT rate, date
4542
FROM datatech-platform-${stage.toLowerCase()}.datalake.fixer_exchange_rates
46-
WHERE target = 'GBP'
47-
AND date = '${format(dateForCurrencyConversionTable, 'yyyy-MM-dd')}'),
43+
WHERE target = 'GBP' AND date = '${format(
44+
dateForCurrencyConversionTable,
45+
'yyyy-MM-dd',
46+
)}'),
4847
acquisitions AS (
4948
SELECT
5049
CASE product
51-
WHEN 'SUPPORTER_PLUS' THEN
52-
CASE currency
53-
WHEN 'GBP' THEN
54-
CASE payment_frequency
55-
WHEN 'MONTHLY' THEN 12
56-
WHEN 'ANNUAL' THEN 120
57-
END
58-
WHEN 'USD' THEN
59-
CASE payment_frequency
60-
WHEN 'MONTHLY' THEN 15
61-
WHEN 'ANNUAL' THEN 150
62-
END
63-
WHEN 'AUD' THEN
64-
CASE payment_frequency
65-
WHEN 'MONTHLY' THEN 20
66-
WHEN 'ANNUAL' THEN 200
67-
END
68-
WHEN 'EUR' THEN
69-
CASE payment_frequency
70-
WHEN 'MONTHLY' THEN 12
71-
WHEN 'ANNUAL' THEN 120
72-
END
73-
WHEN 'NZD' THEN
74-
CASE payment_frequency
75-
WHEN 'MONTHLY' THEN 20
76-
WHEN 'ANNUAL' THEN 200
77-
END
78-
WHEN 'CAD' THEN
79-
CASE payment_frequency
80-
WHEN 'MONTHLY' THEN 15
81-
WHEN 'ANNUAL' THEN 150
82-
END
83-
END
84-
WHEN 'CONTRIBUTION' THEN amount
85-
WHEN 'RECURRING_CONTRIBUTION' THEN amount
86-
END
50+
WHEN 'SUPPORTER_PLUS' THEN
51+
CASE currency
52+
WHEN 'GBP' THEN
53+
CASE payment_frequency
54+
WHEN 'MONTHLY' THEN 12
55+
WHEN 'ANNUAL' THEN 120
56+
END
57+
WHEN 'USD' THEN
58+
CASE payment_frequency
59+
WHEN 'MONTHLY' THEN 15
60+
WHEN 'ANNUAL' THEN 150
61+
END
62+
WHEN 'AUD' THEN
63+
CASE payment_frequency
64+
WHEN 'MONTHLY' THEN 20
65+
WHEN 'ANNUAL' THEN 200
66+
END
67+
WHEN 'EUR' THEN
68+
CASE payment_frequency
69+
WHEN 'MONTHLY' THEN 12
70+
WHEN 'ANNUAL' THEN 120
71+
END
72+
WHEN 'NZD' THEN
73+
CASE payment_frequency
74+
WHEN 'MONTHLY' THEN 20
75+
WHEN 'ANNUAL' THEN 200
76+
END
77+
WHEN 'CAD' THEN
78+
CASE payment_frequency
79+
WHEN 'MONTHLY' THEN 15
80+
WHEN 'ANNUAL' THEN 150
81+
END
82+
END
83+
WHEN 'CONTRIBUTION' THEN amount
84+
WHEN 'RECURRING_CONTRIBUTION' THEN amount
85+
END
8786
AS amount, product, currency, country_code, referrer_url, payment_frequency,
88-
FROM datatech-platform-${stage.toLowerCase()}.datalake.fact_acquisition_event AS acq
89-
WHERE event_timestamp >= TIMESTAMP '${dateHourString}' AND event_timestamp < TIMESTAMP '${endDateHourString}'),
87+
FROM datatech-platform-${stage.toLowerCase()}.datalake.fact_acquisition_event AS acq
88+
WHERE event_timestamp >= TIMESTAMP '${dateHourString}' AND event_timestamp < TIMESTAMP '${endDateHourString}'),
9089
acquisitions_with_av AS (
91-
SELECT
92-
acq.*, date, CASE payment_frequency
90+
SELECT acq.*, date, CASE payment_frequency
9391
WHEN 'ONE_OFF' THEN amount * exch.reverse_rate
9492
WHEN 'MONTHLY' THEN (amount * exch.reverse_rate)*12
9593
WHEN 'ANNUAL' THEN amount * exch.reverse_rate
9694
END
97-
AS av_eur, exch.reverse_rate
98-
FROM acquisitions AS acq
99-
JOIN exchange_rates AS exch
100-
ON acq.currency = exch.target
101-
),
95+
AS av_eur, exch.reverse_rate FROM acquisitions AS acq JOIN exchange_rates AS exch ON acq.currency = exch.target),
10296
acquisitions_with_av_gbp AS (
103-
SELECT
104-
acq_av.*, CASE acq_av.currency
105-
WHEN 'GBP' THEN av_eur
106-
ELSE av_eur * (gbp_rate.rate)
97+
SELECT acq_av.*, CASE acq_av.currency
98+
WHEN 'GBP' THEN av_eur ELSE av_eur * (gbp_rate.rate)
10799
END
108-
AS av_gbp
109-
FROM acquisitions_with_av AS acq_av
110-
JOIN gbp_rate
111-
ON acq_av.date = gbp_rate.date
112-
),
100+
AS av_gbp FROM acquisitions_with_av AS acq_av JOIN gbp_rate ON acq_av.date = gbp_rate.date),
113101
acquisitions_agg AS (
114-
SELECT
115-
country_code, referrer_url, SUM (av_gbp) sum_av_gbp, COUNT (*) acquisitions
102+
SELECT country_code, referrer_url, SUM (av_gbp) sum_av_gbp, COUNT (*) acquisitions
116103
FROM acquisitions_with_av_gbp
117-
GROUP BY 1, 2
118-
),
104+
GROUP BY 1, 2),
119105
av AS (
120-
SELECT
121-
acq_agg.referrer_url AS url, acq_region.region AS region, SUM ( acq_agg.sum_av_gbp) AS total_av,
122-
FROM
123-
acquisitions_with_regions as acq_region
124-
JOIN acquisitions_agg AS acq_agg
125-
ON acq_region.region =acq_agg.country_code
106+
SELECT acq_agg.referrer_url AS url, acq_region.region AS region, SUM ( acq_agg.sum_av_gbp) AS total_av,
107+
FROM acquisitions_with_regions as acq_region JOIN acquisitions_agg AS acq_agg ON acq_region.region =acq_agg.country_code
126108
GROUP BY 1, 2),
127109
views_with_regions AS (
128110
SELECT *, ${regionSql('country_key')}
129-
FROM
130-
datatech-platform-${stage.toLowerCase()}.online_traffic.fact_page_view_anonymised
131-
CROSS JOIN UNNEST(component_event_array) as ce
132-
WHERE received_date >= DATE_SUB('${dateString}'
133-
, INTERVAL 1 DAY)
134-
AND received_date <= '${dateString}'
135-
AND
136-
ce.event_timestamp >= TIMESTAMP '${dateHourString}' AND ce.event_timestamp < TIMESTAMP '${endDateHourString}')
137-
,
111+
FROM datatech-platform-${stage.toLowerCase()}.online_traffic.fact_page_view_anonymised CROSS JOIN UNNEST(component_event_array) as ce
112+
WHERE received_date >= DATE_SUB('${dateString}', INTERVAL 1 DAY) AND received_date <= '${dateString}' AND ce.component_type = 'ACQUISITIONS_EPIC' AND ce.event_action = 'VIEW' AND
113+
ce.event_timestamp >= TIMESTAMP '${dateHourString}' AND ce.event_timestamp < TIMESTAMP '${endDateHourString}') ,
138114
views AS (
139-
SELECT
140-
referrer_url_raw AS url, region, COUNT (*) AS total_views
141-
FROM
142-
views_with_regions
143-
GROUP BY 1, 2
144-
)
115+
SELECT referrer_url_raw AS url, region, COUNT (*) AS total_views
116+
FROM views_with_regions
117+
GROUP BY 1, 2)
145118
SELECT av.url,
146119
av.region,
147120
av.total_av AS totalAv,

0 commit comments

Comments
 (0)