Skip to content

Commit df2d968

Browse files
committed
fix linter issues
1 parent 0245b0c commit df2d968

5 files changed

Lines changed: 249 additions & 685 deletions

File tree

sql/2025/sustainability/ecommerce_bytes_per_type.sql

Lines changed: 95 additions & 248 deletions
Original file line numberDiff line numberDiff line change
@@ -19,242 +19,107 @@ WITH ecommerce_data AS (
1919
CAST(JSON_VALUE(summary, '$.bytesTotal') AS INT64) / 1024 AS total_kb,
2020

2121
-- Operational emissions calculations
22-
(
23-
CAST(
24-
JSON_VALUE(summary, '$.bytesTotal') AS INT64
25-
) / 1024 / 1024 / 1024
26-
) * operational_emissions_data_centers *
27-
grid_intensity AS op_emissions_dc,
28-
(
29-
CAST(
30-
JSON_VALUE(summary, '$.bytesTotal') AS INT64
31-
) / 1024 / 1024 / 1024
32-
) * operational_emissions_network *
33-
grid_intensity AS op_emissions_networks,
34-
(
35-
CAST(
36-
JSON_VALUE(summary, '$.bytesTotal') AS INT64
37-
) / 1024 / 1024 / 1024
38-
) * operational_emissions_user_devices *
39-
grid_intensity AS op_emissions_devices,
22+
(CAST(JSON_VALUE(summary, '$.bytesTotal') AS INT64) / 1024 / 1024 / 1024) * operational_emissions_data_centers * grid_intensity AS op_emissions_dc,
23+
(CAST(JSON_VALUE(summary, '$.bytesTotal') AS INT64) / 1024 / 1024 / 1024) * operational_emissions_network * grid_intensity AS op_emissions_networks,
24+
(CAST(JSON_VALUE(summary, '$.bytesTotal') AS INT64) / 1024 / 1024 / 1024) * operational_emissions_user_devices * grid_intensity AS op_emissions_devices,
4025

4126
-- Embodied emissions calculations
42-
(
43-
CAST(
44-
JSON_VALUE(summary, '$.bytesTotal') AS INT64
45-
) / 1024 / 1024 / 1024
46-
) * embodied_emissions_data_centers *
47-
grid_intensity AS em_emissions_dc,
48-
(
49-
CAST(
50-
JSON_VALUE(summary, '$.bytesTotal') AS INT64
51-
) / 1024 / 1024 / 1024
52-
) * embodied_emissions_network *
53-
grid_intensity AS em_emissions_networks,
54-
(
55-
CAST(
56-
JSON_VALUE(summary, '$.bytesTotal') AS INT64
57-
) / 1024 / 1024 / 1024
58-
) * embodied_emissions_user_devices *
59-
grid_intensity AS em_emissions_devices,
27+
(CAST(JSON_VALUE(summary, '$.bytesTotal') AS INT64) / 1024 / 1024 / 1024) * embodied_emissions_data_centers * grid_intensity AS em_emissions_dc,
28+
(CAST(JSON_VALUE(summary, '$.bytesTotal') AS INT64) / 1024 / 1024 / 1024) * embodied_emissions_network * grid_intensity AS em_emissions_networks,
29+
(CAST(JSON_VALUE(summary, '$.bytesTotal') AS INT64) / 1024 / 1024 / 1024) * embodied_emissions_user_devices * grid_intensity AS em_emissions_devices,
6030

6131
-- Total emissions (operational + embodied)
6232
(
63-
(
64-
CAST(
65-
JSON_VALUE(summary, '$.bytesTotal') AS INT64
66-
) / 1024 / 1024 / 1024
67-
) * operational_emissions_data_centers * grid_intensity +
68-
(
69-
CAST(
70-
JSON_VALUE(summary, '$.bytesTotal') AS INT64
71-
) / 1024 / 1024 / 1024
72-
) * operational_emissions_network * grid_intensity +
73-
(
74-
CAST(
75-
JSON_VALUE(summary, '$.bytesTotal') AS INT64
76-
) / 1024 / 1024 / 1024
77-
) * operational_emissions_user_devices * grid_intensity
33+
(CAST(JSON_VALUE(summary, '$.bytesTotal') AS INT64) / 1024 / 1024 / 1024) * operational_emissions_data_centers * grid_intensity +
34+
(CAST(JSON_VALUE(summary, '$.bytesTotal') AS INT64) / 1024 / 1024 / 1024) * operational_emissions_network * grid_intensity +
35+
(CAST(JSON_VALUE(summary, '$.bytesTotal') AS INT64) / 1024 / 1024 / 1024) * operational_emissions_user_devices * grid_intensity
7836
) AS total_operational_emissions,
7937

8038
(
81-
(
82-
CAST(
83-
JSON_VALUE(summary, '$.bytesTotal') AS INT64
84-
) / 1024 / 1024 / 1024
85-
) * embodied_emissions_data_centers * grid_intensity +
86-
(
87-
CAST(
88-
JSON_VALUE(summary, '$.bytesTotal') AS INT64
89-
) / 1024 / 1024 / 1024
90-
) * embodied_emissions_network * grid_intensity +
91-
(
92-
CAST(
93-
JSON_VALUE(summary, '$.bytesTotal') AS INT64
94-
) / 1024 / 1024 / 1024
95-
) * embodied_emissions_user_devices * grid_intensity
39+
(CAST(JSON_VALUE(summary, '$.bytesTotal') AS INT64) / 1024 / 1024 / 1024) * embodied_emissions_data_centers * grid_intensity +
40+
(CAST(JSON_VALUE(summary, '$.bytesTotal') AS INT64) / 1024 / 1024 / 1024) * embodied_emissions_network * grid_intensity +
41+
(CAST(JSON_VALUE(summary, '$.bytesTotal') AS INT64) / 1024 / 1024 / 1024) * embodied_emissions_user_devices * grid_intensity
9642
) AS total_embodied_emissions,
9743

9844
(
99-
(
100-
CAST(
101-
JSON_VALUE(summary, '$.bytesTotal') AS INT64
102-
) / 1024 / 1024 / 1024
103-
) * operational_emissions_data_centers * grid_intensity +
104-
(
105-
CAST(
106-
JSON_VALUE(summary, '$.bytesTotal') AS INT64
107-
) / 1024 / 1024 / 1024
108-
) * operational_emissions_network * grid_intensity +
109-
(
110-
CAST(
111-
JSON_VALUE(summary, '$.bytesTotal') AS INT64
112-
) / 1024 / 1024 / 1024
113-
) * operational_emissions_user_devices * grid_intensity +
114-
(
115-
CAST(
116-
JSON_VALUE(summary, '$.bytesTotal') AS INT64
117-
) / 1024 / 1024 / 1024
118-
) * embodied_emissions_data_centers * grid_intensity +
119-
(
120-
CAST(
121-
JSON_VALUE(summary, '$.bytesTotal') AS INT64
122-
) / 1024 / 1024 / 1024
123-
) * embodied_emissions_network * grid_intensity +
124-
(
125-
CAST(
126-
JSON_VALUE(summary, '$.bytesTotal') AS INT64
127-
) / 1024 / 1024 / 1024
128-
) * embodied_emissions_user_devices * grid_intensity
45+
(CAST(JSON_VALUE(summary, '$.bytesTotal') AS INT64) / 1024 / 1024 / 1024) * operational_emissions_data_centers * grid_intensity +
46+
(CAST(JSON_VALUE(summary, '$.bytesTotal') AS INT64) / 1024 / 1024 / 1024) * operational_emissions_network * grid_intensity +
47+
(CAST(JSON_VALUE(summary, '$.bytesTotal') AS INT64) / 1024 / 1024 / 1024) * operational_emissions_user_devices * grid_intensity +
48+
(CAST(JSON_VALUE(summary, '$.bytesTotal') AS INT64) / 1024 / 1024 / 1024) * embodied_emissions_data_centers * grid_intensity +
49+
(CAST(JSON_VALUE(summary, '$.bytesTotal') AS INT64) / 1024 / 1024 / 1024) * embodied_emissions_network * grid_intensity +
50+
(CAST(JSON_VALUE(summary, '$.bytesTotal') AS INT64) / 1024 / 1024 / 1024) * embodied_emissions_user_devices * grid_intensity
12951
) AS total_emissions,
13052

13153
-- Proportions of each resource type relative to total bytes
132-
CAST(
133-
JSON_VALUE(summary, '$.bytesHtml') AS INT64
134-
) / CAST(
135-
JSON_VALUE(summary, '$.bytesTotal') AS INT64
136-
) AS html_proportion,
137-
CAST(
138-
JSON_VALUE(summary, '$.bytesJS') AS INT64
139-
) / CAST(JSON_VALUE(summary, '$.bytesTotal') AS INT64) AS js_proportion,
140-
CAST(
141-
JSON_VALUE(summary, '$.bytesCss') AS INT64
142-
) / CAST(
143-
JSON_VALUE(summary, '$.bytesTotal') AS INT64
144-
) AS css_proportion,
145-
CAST(
146-
JSON_VALUE(summary, '$.bytesImg') AS INT64
147-
) / CAST(
148-
JSON_VALUE(summary, '$.bytesTotal') AS INT64
149-
) AS img_proportion,
150-
CAST(
151-
JSON_VALUE(summary, '$.bytesFont') AS INT64
152-
) / CAST(
153-
JSON_VALUE(summary, '$.bytesTotal') AS INT64
154-
) AS font_proportion,
54+
CAST(JSON_VALUE(summary, '$.bytesHtml') AS INT64) / CAST(JSON_VALUE(summary, '$.bytesTotal') AS INT64) AS html_proportion,
55+
CAST(JSON_VALUE(summary, '$.bytesJS') AS INT64) / CAST(JSON_VALUE(summary, '$.bytesTotal') AS INT64) AS js_proportion,
56+
CAST(JSON_VALUE(summary, '$.bytesCss') AS INT64) / CAST(JSON_VALUE(summary, '$.bytesTotal') AS INT64) AS css_proportion,
57+
CAST(JSON_VALUE(summary, '$.bytesImg') AS INT64) / CAST(JSON_VALUE(summary, '$.bytesTotal') AS INT64) AS img_proportion,
58+
CAST(JSON_VALUE(summary, '$.bytesFont') AS INT64) / CAST(JSON_VALUE(summary, '$.bytesTotal') AS INT64) AS font_proportion,
15559

15660
-- Resource-specific emissions calculations
157-
(
158-
SAFE_DIVIDE(
159-
CAST(JSON_VALUE(summary, '$.bytesHtml') AS INT64),
160-
CAST(JSON_VALUE(summary, '$.bytesTotal') AS INT64)
161-
) * (
162-
(
163-
CAST(
164-
JSON_VALUE(summary, '$.bytesTotal') AS INT64
165-
) / 1024 / 1024 / 1024
166-
) * (
167-
operational_emissions_data_centers * grid_intensity +
168-
operational_emissions_network * grid_intensity +
169-
operational_emissions_user_devices * grid_intensity +
170-
embodied_emissions_data_centers * grid_intensity +
171-
embodied_emissions_network * grid_intensity +
172-
embodied_emissions_user_devices * grid_intensity
173-
)
174-
)) AS total_html_emissions,
175-
176-
(
177-
SAFE_DIVIDE(
178-
CAST(JSON_VALUE(summary, '$.bytesJS') AS INT64),
179-
CAST(JSON_VALUE(summary, '$.bytesTotal') AS INT64)
180-
) * (
181-
(
182-
CAST(
183-
JSON_VALUE(summary, '$.bytesTotal') AS INT64
184-
) / 1024 / 1024 / 1024
185-
) * (
186-
operational_emissions_data_centers * grid_intensity +
187-
operational_emissions_network * grid_intensity +
188-
operational_emissions_user_devices * grid_intensity +
189-
embodied_emissions_data_centers * grid_intensity +
190-
embodied_emissions_network * grid_intensity +
191-
embodied_emissions_user_devices * grid_intensity
192-
)
193-
)) AS total_js_emissions,
194-
195-
(
196-
SAFE_DIVIDE(
197-
CAST(JSON_VALUE(summary, '$.bytesCss') AS INT64),
198-
CAST(JSON_VALUE(summary, '$.bytesTotal') AS INT64)
199-
) * (
200-
(
201-
CAST(
202-
JSON_VALUE(summary, '$.bytesTotal') AS INT64
203-
) / 1024 / 1024 / 1024
204-
) * (
205-
operational_emissions_data_centers * grid_intensity +
206-
operational_emissions_network * grid_intensity +
207-
operational_emissions_user_devices * grid_intensity +
208-
embodied_emissions_data_centers * grid_intensity +
209-
embodied_emissions_network * grid_intensity +
210-
embodied_emissions_user_devices * grid_intensity
211-
)
212-
)) AS total_css_emissions,
213-
214-
(
215-
SAFE_DIVIDE(
216-
CAST(JSON_VALUE(summary, '$.bytesImg') AS INT64),
217-
CAST(JSON_VALUE(summary, '$.bytesTotal') AS INT64)
218-
) * (
219-
(
220-
CAST(
221-
JSON_VALUE(summary, '$.bytesTotal') AS INT64
222-
) / 1024 / 1024 / 1024
223-
) * (
224-
operational_emissions_data_centers * grid_intensity +
225-
operational_emissions_network * grid_intensity +
226-
operational_emissions_user_devices * grid_intensity +
227-
embodied_emissions_data_centers * grid_intensity +
228-
embodied_emissions_network * grid_intensity +
229-
embodied_emissions_user_devices * grid_intensity
230-
)
231-
)) AS total_img_emissions,
232-
233-
(
234-
SAFE_DIVIDE(
235-
CAST(JSON_VALUE(summary, '$.bytesFont') AS INT64),
236-
CAST(JSON_VALUE(summary, '$.bytesTotal') AS INT64)
237-
) * (
238-
(
239-
CAST(
240-
JSON_VALUE(summary, '$.bytesTotal') AS INT64
241-
) / 1024 / 1024 / 1024
242-
) * (
243-
operational_emissions_data_centers * grid_intensity +
244-
operational_emissions_network * grid_intensity +
245-
operational_emissions_user_devices * grid_intensity +
246-
embodied_emissions_data_centers * grid_intensity +
247-
embodied_emissions_network * grid_intensity +
248-
embodied_emissions_user_devices * grid_intensity
249-
)
250-
)) AS total_font_emissions,
61+
(SAFE_DIVIDE(CAST(JSON_VALUE(summary, '$.bytesHtml') AS INT64), CAST(JSON_VALUE(summary, '$.bytesTotal') AS INT64)) * (
62+
(CAST(JSON_VALUE(summary, '$.bytesTotal') AS INT64) / 1024 / 1024 / 1024) * (
63+
operational_emissions_data_centers * grid_intensity +
64+
operational_emissions_network * grid_intensity +
65+
operational_emissions_user_devices * grid_intensity +
66+
embodied_emissions_data_centers * grid_intensity +
67+
embodied_emissions_network * grid_intensity +
68+
embodied_emissions_user_devices * grid_intensity
69+
)
70+
)) AS total_html_emissions,
71+
72+
(SAFE_DIVIDE(CAST(JSON_VALUE(summary, '$.bytesJS') AS INT64), CAST(JSON_VALUE(summary, '$.bytesTotal') AS INT64)) * (
73+
(CAST(JSON_VALUE(summary, '$.bytesTotal') AS INT64) / 1024 / 1024 / 1024) * (
74+
operational_emissions_data_centers * grid_intensity +
75+
operational_emissions_network * grid_intensity +
76+
operational_emissions_user_devices * grid_intensity +
77+
embodied_emissions_data_centers * grid_intensity +
78+
embodied_emissions_network * grid_intensity +
79+
embodied_emissions_user_devices * grid_intensity
80+
)
81+
)) AS total_js_emissions,
82+
83+
(SAFE_DIVIDE(CAST(JSON_VALUE(summary, '$.bytesCss') AS INT64), CAST(JSON_VALUE(summary, '$.bytesTotal') AS INT64)) * (
84+
(CAST(JSON_VALUE(summary, '$.bytesTotal') AS INT64) / 1024 / 1024 / 1024) * (
85+
operational_emissions_data_centers * grid_intensity +
86+
operational_emissions_network * grid_intensity +
87+
operational_emissions_user_devices * grid_intensity +
88+
embodied_emissions_data_centers * grid_intensity +
89+
embodied_emissions_network * grid_intensity +
90+
embodied_emissions_user_devices * grid_intensity
91+
)
92+
)) AS total_css_emissions,
93+
94+
(SAFE_DIVIDE(CAST(JSON_VALUE(summary, '$.bytesImg') AS INT64), CAST(JSON_VALUE(summary, '$.bytesTotal') AS INT64)) * (
95+
(CAST(JSON_VALUE(summary, '$.bytesTotal') AS INT64) / 1024 / 1024 / 1024) * (
96+
operational_emissions_data_centers * grid_intensity +
97+
operational_emissions_network * grid_intensity +
98+
operational_emissions_user_devices * grid_intensity +
99+
embodied_emissions_data_centers * grid_intensity +
100+
embodied_emissions_network * grid_intensity +
101+
embodied_emissions_user_devices * grid_intensity
102+
)
103+
)) AS total_img_emissions,
104+
105+
(SAFE_DIVIDE(CAST(JSON_VALUE(summary, '$.bytesFont') AS INT64), CAST(JSON_VALUE(summary, '$.bytesTotal') AS INT64)) * (
106+
(CAST(JSON_VALUE(summary, '$.bytesTotal') AS INT64) / 1024 / 1024 / 1024) * (
107+
operational_emissions_data_centers * grid_intensity +
108+
operational_emissions_network * grid_intensity +
109+
operational_emissions_user_devices * grid_intensity +
110+
embodied_emissions_data_centers * grid_intensity +
111+
embodied_emissions_network * grid_intensity +
112+
embodied_emissions_user_devices * grid_intensity
113+
)
114+
)) AS total_font_emissions,
251115

252116
-- Resource-specific size in KB
253117
CAST(JSON_VALUE(summary, '$.bytesHtml') AS INT64) / 1024 AS html_kb,
254118
CAST(JSON_VALUE(summary, '$.bytesJS') AS INT64) / 1024 AS js_kb,
255119
CAST(JSON_VALUE(summary, '$.bytesCss') AS INT64) / 1024 AS css_kb,
256120
CAST(JSON_VALUE(summary, '$.bytesImg') AS INT64) / 1024 AS img_kb,
257121
CAST(JSON_VALUE(summary, '$.bytesFont') AS INT64) / 1024 AS font_kb
122+
258123
FROM
259124
`httparchive.crawl.pages`,
260125
UNNEST(technologies) AS tech
@@ -265,9 +130,7 @@ WITH ecommerce_data AS (
265130
SELECT 1
266131
FROM UNNEST(tech.categories) AS category
267132
WHERE category = 'Ecommerce' AND
268-
tech.technology NOT IN (
269-
'Cart Functionality', 'Google Analytics Enhanced eCommerce'
270-
)
133+
tech.technology NOT IN ('Cart Functionality', 'Google Analytics Enhanced eCommerce')
271134
)
272135
)
273136

@@ -277,44 +140,28 @@ SELECT
277140
COUNT(0) AS pages,
278141

279142
-- Median resource weights and emissions
280-
APPROX_QUANTILES(total_kb, 1000) [OFFSET(500)] AS median_total_kb,
281-
APPROX_QUANTILES(
282-
total_operational_emissions, 1000
283-
) [OFFSET(500)] AS median_operational_emissions,
284-
APPROX_QUANTILES(
285-
total_embodied_emissions, 1000
286-
) [OFFSET(500)] AS median_embodied_emissions,
287-
APPROX_QUANTILES(
288-
total_emissions, 1000
289-
) [OFFSET(500)] AS median_total_emissions,
143+
APPROX_QUANTILES(total_kb, 1000)[OFFSET(500)] AS median_total_kb,
144+
APPROX_QUANTILES(total_operational_emissions, 1000)[OFFSET(500)] AS median_operational_emissions,
145+
APPROX_QUANTILES(total_embodied_emissions, 1000)[OFFSET(500)] AS median_embodied_emissions,
146+
APPROX_QUANTILES(total_emissions, 1000)[OFFSET(500)] AS median_total_emissions,
290147

291148
-- Resource-specific medians
292-
APPROX_QUANTILES(html_kb, 1000) [OFFSET(500)] AS median_html_kb,
293-
APPROX_QUANTILES(
294-
total_html_emissions, 1000
295-
) [OFFSET(500)] AS median_total_html_emissions,
296-
APPROX_QUANTILES(js_kb, 1000) [OFFSET(500)] AS median_js_kb,
297-
APPROX_QUANTILES(
298-
total_js_emissions, 1000
299-
) [OFFSET(500)] AS median_total_js_emissions,
300-
APPROX_QUANTILES(css_kb, 1000) [OFFSET(500)] AS median_css_kb,
301-
APPROX_QUANTILES(
302-
total_css_emissions, 1000
303-
) [OFFSET(500)] AS median_total_css_emissions,
304-
APPROX_QUANTILES(img_kb, 1000) [OFFSET(500)] AS median_img_kb,
305-
APPROX_QUANTILES(
306-
total_img_emissions, 1000
307-
) [OFFSET(500)] AS median_total_img_emissions,
308-
APPROX_QUANTILES(font_kb, 1000) [OFFSET(500)] AS median_font_kb,
309-
APPROX_QUANTILES(
310-
total_font_emissions, 1000
311-
) [OFFSET(500)] AS median_total_font_emissions
149+
APPROX_QUANTILES(html_kb, 1000)[OFFSET(500)] AS median_html_kb,
150+
APPROX_QUANTILES(total_html_emissions, 1000)[OFFSET(500)] AS median_total_html_emissions,
151+
APPROX_QUANTILES(js_kb, 1000)[OFFSET(500)] AS median_js_kb,
152+
APPROX_QUANTILES(total_js_emissions, 1000)[OFFSET(500)] AS median_total_js_emissions,
153+
APPROX_QUANTILES(css_kb, 1000)[OFFSET(500)] AS median_css_kb,
154+
APPROX_QUANTILES(total_css_emissions, 1000)[OFFSET(500)] AS median_total_css_emissions,
155+
APPROX_QUANTILES(img_kb, 1000)[OFFSET(500)] AS median_img_kb,
156+
APPROX_QUANTILES(total_img_emissions, 1000)[OFFSET(500)] AS median_total_img_emissions,
157+
APPROX_QUANTILES(font_kb, 1000)[OFFSET(500)] AS median_font_kb,
158+
APPROX_QUANTILES(total_font_emissions, 1000)[OFFSET(500)] AS median_total_font_emissions
312159
FROM
313160
ecommerce_data
314161
GROUP BY
315162
client,
316163
ecommerce
317164
ORDER BY
318165
pages DESC,
319-
ecommerce ASC,
320-
client ASC;
166+
ecommerce,
167+
client;

0 commit comments

Comments
 (0)