Skip to content

Commit 5ed2806

Browse files
committed
More queries
1 parent 188d17c commit 5ed2806

7 files changed

Lines changed: 328 additions & 23 deletions
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
#standardSQL
2+
# CrUX Core Web Vitals performance of Ecommerce vendors by device (fid was upated to inp, and is non optinal now)
3+
CREATE TEMP FUNCTION IS_GOOD(good FLOAT64, needs_improvement FLOAT64, poor FLOAT64) RETURNS BOOL AS (
4+
good / (good + needs_improvement + poor) >= 0.75
5+
);
6+
7+
CREATE TEMP FUNCTION IS_NON_ZERO(good FLOAT64, needs_improvement FLOAT64, poor FLOAT64) RETURNS BOOL AS (
8+
good + needs_improvement + poor > 0
9+
);
10+
11+
12+
SELECT
13+
client,
14+
ecomm,
15+
COUNT(DISTINCT origin) AS origins,
16+
# Origins with good LCP divided by origins with any LCP.
17+
SAFE_DIVIDE(
18+
COUNT(DISTINCT IF(IS_GOOD(fast_lcp, avg_lcp, slow_lcp), origin, NULL)),
19+
COUNT(DISTINCT IF(IS_NON_ZERO(fast_lcp, avg_lcp, slow_lcp), origin, NULL))
20+
) AS pct_good_lcp,
21+
22+
# Origins with good INP divided by origins with any inp.
23+
SAFE_DIVIDE(
24+
COUNT(DISTINCT IF(IS_GOOD(fast_inp, avg_inp, slow_inp), origin, NULL)),
25+
COUNT(DISTINCT IF(IS_NON_ZERO(fast_inp, avg_inp, slow_inp), origin, NULL))
26+
) AS pct_good_inp,
27+
28+
# Origins with good CLS divided by origins with any CLS.
29+
SAFE_DIVIDE(
30+
COUNT(DISTINCT IF(IS_GOOD(small_cls, medium_cls, large_cls), origin, NULL)),
31+
COUNT(DISTINCT IF(IS_NON_ZERO(small_cls, medium_cls, large_cls), origin, NULL))
32+
) AS pct_good_cls,
33+
34+
# Origins with good LCP, inp, and CLS divided by origins with any LCP, inp, and CLS.
35+
SAFE_DIVIDE(
36+
COUNT(DISTINCT IF(
37+
IS_GOOD(fast_lcp, avg_lcp, slow_lcp) AND
38+
IS_GOOD(fast_inp, avg_inp, slow_inp) AND
39+
IS_GOOD(small_cls, medium_cls, large_cls), origin, NULL
40+
)),
41+
COUNT(DISTINCT IF(
42+
IS_NON_ZERO(fast_lcp, avg_lcp, slow_lcp) AND
43+
IS_NON_ZERO(fast_inp, avg_inp, slow_inp) AND
44+
IS_NON_ZERO(small_cls, medium_cls, large_cls), origin, NULL
45+
))
46+
) AS pct_good_cwv
47+
FROM
48+
`chrome-ux-report.materialized.device_summary`
49+
JOIN (
50+
SELECT DISTINCT
51+
client,
52+
root_page,
53+
app AS ecomm
54+
FROM
55+
`httparchive.crawl.pages`,
56+
UNNEST(technologies) AS tech,
57+
UNNEST(categories) AS category
58+
WHERE
59+
date = '2025-07-01' AND
60+
category = 'Ecommerce' AND
61+
(
62+
technology != 'Cart Functionality' AND
63+
technology != 'Google Analytics Enhanced eCommerce'
64+
)
65+
)
66+
ON
67+
CONCAT(origin, '/') = root_page AND
68+
IF(device = 'desktop', 'desktop', 'mobile') = client
69+
WHERE
70+
date = '2025-07-01'
71+
GROUP BY
72+
client,
73+
ecomm
74+
ORDER BY
75+
origins DESC

sql/2025/ecommerce/median_lighthouse_score_ecommsites.sql

Lines changed: 22 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,43 @@
1-
WITH technologies AS (
1+
WITH totals AS (
22
SELECT
33
client,
4-
page,
5-
category,
6-
technology,
7-
rank,
8-
lighthouse,
9-
COUNT(DISTINCT page) OVER (PARTITION BY client) AS total_websites
10-
FROM `httparchive.crawl.pages`,
11-
UNNEST(technologies) AS tech,
12-
UNNEST(categories) AS category
4+
COUNT(DISTINCT page) AS total_webpages,
5+
COUNT(DISTINCT root_page) AS total_websites
6+
FROM
7+
`httparchive.crawl.pages`
138
WHERE
14-
date = '2025-07-01' AND
15-
is_root_page
9+
date = '2025-07-01'
10+
GROUP BY
11+
client
1612
)
1713

1814
SELECT
1915
client,
20-
rank,
2116
technology,
2217
ARRAY_AGG(DISTINCT category) AS categories,
23-
APPROX_QUANTILES(CAST(JSON_VALUE(lighthouse.categories.performance.score) AS NUMERIC), 1000)[OFFSET(500)] AS median_performance,
24-
APPROX_QUANTILES(CAST(JSON_VALUE(lighthouse.categories.accessibility.score) AS NUMERIC), 1000)[OFFSET(500)] AS median_accessibility,
25-
APPROX_QUANTILES(CAST(JSON_VALUE(lighthouse.categories.seo.score) AS NUMERIC), 1000)[OFFSET(500)] AS median_seo,
26-
APPROX_QUANTILES(CAST(JSON_VALUE(lighthouse.categories.`best-practices`.score) AS NUMERIC), 1000)[OFFSET(500)] AS median_best_practices,
18+
APPROX_QUANTILES(CAST(JSON_VALUE(lighthouse.categories.performance.score) AS NUMERIC) * 100, 1000)[OFFSET(500)] AS median_performance,
19+
APPROX_QUANTILES(CAST(JSON_VALUE(lighthouse.categories.accessibility.score) AS NUMERIC) * 100, 1000)[OFFSET(500)] AS median_accessibility,
20+
APPROX_QUANTILES(CAST(JSON_VALUE(lighthouse.categories.seo.score) AS NUMERIC) * 100, 1000)[OFFSET(500)] AS median_seo,
21+
APPROX_QUANTILES(CAST(JSON_VALUE(lighthouse.categories.`best-practices`.score) AS NUMERIC) * 100, 1000)[OFFSET(500)] AS median_best_practices,
2722
ANY_VALUE(total_websites) AS total_websites,
28-
COUNT(DISTINCT page) AS number_of_websites,
29-
COUNT(DISTINCT page) / ANY_VALUE(total_websites) AS percent_of_websites
30-
FROM technologies
23+
COUNT(DISTINCT root_page) AS number_of_websites,
24+
COUNT(DISTINCT root_page) / ANY_VALUE(total_websites) AS percent_of_websites
25+
FROM
26+
`httparchive.crawl.pages`,
27+
UNNEST(technologies) AS tech,
28+
UNNEST(categories) AS category
29+
INNER JOIN
30+
totals
31+
USING (client)
3132
WHERE
33+
date = '2025-07-01' AND
3234
category = 'Ecommerce' AND
3335
(
3436
technology != 'Cart Functionality' AND
3537
technology != 'Google Analytics Enhanced eCommerce'
3638
)
3739
GROUP BY
3840
client,
39-
rank,
4041
technology
4142
ORDER BY
4243
client,

sql/2025/ecommerce/top_ecommerce.sql

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,15 +77,15 @@ SELECT
7777
total,
7878
COUNT(DISTINCT page) / total AS pct
7979
FROM
80-
`httparchive.all.pages`,
80+
`httparchive.crawl.pages`,
8181
UNNEST(technologies) AS technologies,
8282
UNNEST(technologies.categories) AS cats
8383
JOIN (
8484
SELECT
8585
client,
8686
COUNT(0) AS total
8787
FROM
88-
`httparchive.all.pages`
88+
`httparchive.crawl.pages`
8989
WHERE
9090
date = '2023-06-01' AND
9191
is_root_page
File renamed without changes.
File renamed without changes.
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
#standardSQL
2+
# shipping popularity per geo
3+
# top_shipping_by_geo.sql
4+
WITH geo_summary AS (
5+
SELECT
6+
`chrome-ux-report`.experimental.GET_COUNTRY(country_code) AS geo,
7+
IF(device = 'desktop', 'desktop', 'mobile') AS client,
8+
CONCAT(origin, '/') AS root_page,
9+
COUNT(DISTINCT origin) OVER (PARTITION BY country_code, IF(device = 'desktop', 'desktop', 'mobile')) AS total
10+
FROM
11+
`chrome-ux-report.materialized.country_summary`
12+
WHERE
13+
yyyymm = 202507
14+
UNION ALL
15+
SELECT
16+
'ALL' AS geo,
17+
IF(device = 'desktop', 'desktop', 'mobile') AS client,
18+
CONCAT(origin, '/') AS root_page,
19+
COUNT(DISTINCT origin) OVER (PARTITION BY IF(device = 'desktop', 'desktop', 'mobile')) AS total
20+
FROM
21+
`chrome-ux-report.materialized.device_summary`
22+
WHERE
23+
yyyymm = 202507
24+
)
25+
26+
SELECT
27+
client,
28+
geo,
29+
shipping,
30+
COUNT(DISTINCT root_page) AS sites,
31+
ANY_VALUE(total) AS total,
32+
COUNT(DISTINCT root_page) / ANY_VALUE(total) AS pct
33+
FROM
34+
geo_summary
35+
JOIN (
36+
SELECT DISTINCT
37+
client,
38+
cats,
39+
technologies.technology AS shipping,
40+
page,
41+
root_page
42+
FROM
43+
`httparchive.crawl.pages`,
44+
UNNEST(technologies) AS technologies,
45+
UNNEST(technologies.categories) AS cats
46+
WHERE
47+
technologies.technology IS NOT NULL AND
48+
cats = 'Shipping carriers' AND
49+
technologies.technology != '' AND
50+
date = '2025-07-01'
51+
) USING (client, root_page)
52+
GROUP BY
53+
client,
54+
geo,
55+
shipping
56+
HAVING
57+
sites > 1000
58+
ORDER BY
59+
sites DESC
Lines changed: 170 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,170 @@
1+
#standardSQL
2+
# Top Shipping carriers platforms, compared to 2021
3+
# top_shipping.sql
4+
SELECT
5+
client,
6+
2024 AS year,
7+
technologies.technology AS shipping,
8+
COUNT(DISTINCT root_page) AS freq,
9+
total,
10+
COUNT(DISTINCT root_page) / total AS pct
11+
FROM
12+
`httparchive.crawl.pages`,
13+
UNNEST(technologies) AS technologies,
14+
UNNEST(technologies.categories) AS cats
15+
JOIN (
16+
SELECT
17+
client,
18+
COUNT(0) AS total
19+
FROM
20+
`httparchive.crawl.pages`
21+
WHERE
22+
date = '2025-07-01' AND
23+
is_root_page
24+
GROUP BY
25+
client
26+
)
27+
USING (client)
28+
WHERE
29+
cats = 'Shipping carriers' AND
30+
date = '2025-07-01' AND
31+
is_root_page
32+
GROUP BY
33+
client,
34+
total,
35+
shipping
36+
UNION ALL
37+
SELECT
38+
client,
39+
2023 AS year,
40+
technologies.technology AS shipping,
41+
COUNT(DISTINCT root_page) AS freq,
42+
total,
43+
COUNT(DISTINCT root_page) / total AS pct
44+
FROM
45+
`httparchive.crawl.pages`,
46+
UNNEST(technologies) AS technologies,
47+
UNNEST(technologies.categories) AS cats
48+
JOIN (
49+
SELECT
50+
client,
51+
COUNT(0) AS total
52+
FROM
53+
`httparchive.crawl.pages`
54+
WHERE
55+
date = '2024-06-01' AND
56+
is_root_page
57+
GROUP BY
58+
client
59+
)
60+
USING (client)
61+
WHERE
62+
cats = 'Shipping carriers' AND
63+
date = '2024-06-01' AND
64+
is_root_page
65+
GROUP BY
66+
client,
67+
total,
68+
shipping
69+
UNION ALL
70+
SELECT
71+
client,
72+
2023 AS year,
73+
technologies.technology AS shipping,
74+
COUNT(DISTINCT root_page) AS freq,
75+
total,
76+
COUNT(DISTINCT root_page) / total AS pct
77+
FROM
78+
`httparchive.crawl.pages`,
79+
UNNEST(technologies) AS technologies,
80+
UNNEST(technologies.categories) AS cats
81+
JOIN (
82+
SELECT
83+
client,
84+
COUNT(0) AS total
85+
FROM
86+
`httparchive.crawl.pages`
87+
WHERE
88+
date = '2023-07-01' AND
89+
is_root_page
90+
GROUP BY
91+
client
92+
)
93+
USING (client)
94+
WHERE
95+
cats = 'Shipping carriers' AND
96+
date = '2023-07-01' AND
97+
is_root_page
98+
GROUP BY
99+
client,
100+
total,
101+
shipping
102+
UNION ALL
103+
SELECT
104+
client,
105+
2022 AS year,
106+
technologies.technology AS shipping,
107+
COUNT(DISTINCT root_page) AS freq,
108+
total,
109+
COUNT(DISTINCT root_page) / total AS pct
110+
FROM
111+
`httparchive.crawl.pages`,
112+
UNNEST(technologies) AS technologies,
113+
UNNEST(technologies.categories) AS cats
114+
JOIN (
115+
SELECT
116+
client,
117+
COUNT(0) AS total
118+
FROM
119+
`httparchive.crawl.pages`
120+
WHERE
121+
date = '2022-06-01' AND
122+
is_root_page
123+
GROUP BY
124+
client
125+
)
126+
USING (client)
127+
WHERE
128+
cats = 'Shipping carriers' AND
129+
date = '2022-06-01' AND
130+
is_root_page
131+
GROUP BY
132+
client,
133+
total,
134+
shipping
135+
UNION ALL
136+
SELECT
137+
client,
138+
2021 AS year,
139+
technologies.technology AS shipping,
140+
COUNT(DISTINCT root_page) AS freq,
141+
total,
142+
COUNT(DISTINCT root_page) / total AS pct
143+
FROM
144+
`httparchive.crawl.pages`,
145+
UNNEST(technologies) AS technologies,
146+
UNNEST(technologies.categories) AS cats
147+
JOIN (
148+
SELECT
149+
client,
150+
COUNT(0) AS total
151+
FROM
152+
`httparchive.crawl.pages`
153+
WHERE
154+
date = '2021-07-01' AND
155+
is_root_page
156+
GROUP BY
157+
client
158+
)
159+
USING (client)
160+
WHERE
161+
cats = 'Shipping carriers' AND
162+
date = '2021-07-01' AND
163+
is_root_page
164+
GROUP BY
165+
client,
166+
total,
167+
shipping
168+
ORDER BY
169+
year DESC,
170+
pct DESC

0 commit comments

Comments
 (0)