@@ -188,46 +188,6 @@ geo_summary AS (
188188 device IN ('desktop', 'phone')
189189),
190190
191- base_crux AS (
192- SELECT
193- geo,
194- CASE
195- WHEN rank <= 1000 THEN ['Top 1k', 'Top 10k', 'Top 100k', 'Top 1M', 'Top 10M', 'ALL']
196- WHEN rank <= 10000 THEN ['Top 10k', 'Top 100k', 'Top 1M', 'Top 10M', 'ALL']
197- WHEN rank <= 100000 THEN ['Top 100k', 'Top 1M', 'Top 10M', 'ALL']
198- WHEN rank <= 1000000 THEN ['Top 1M', 'Top 10M', 'ALL']
199- WHEN rank <= 10000000 THEN ['Top 10M', 'ALL']
200- WHEN rank <= 100000000 THEN ['ALL']
201- END AS eligible_ranks,
202- CONCAT(origin, '/') AS root_page,
203- IF(device = 'desktop', 'desktop', 'mobile') AS client,
204-
205- # CWV
206- IS_NON_ZERO(fast_fid, avg_fid, slow_fid) AS any_fid,
207- IS_GOOD(fast_fid, avg_fid, slow_fid) AS good_fid,
208- IS_NON_ZERO(small_cls, medium_cls, large_cls) AS any_cls,
209- IS_GOOD(small_cls, medium_cls, large_cls) AS good_cls,
210- IS_NON_ZERO(fast_lcp, avg_lcp, slow_lcp) AS any_lcp,
211- IS_GOOD(fast_lcp, avg_lcp, slow_lcp) AS good_lcp,
212- IF('${ pastMonth } ' < '2024-01-01',
213- (IS_GOOD(fast_fid, avg_fid, slow_fid) OR fast_fid IS NULL) AND
214- IS_GOOD(small_cls, medium_cls, large_cls) AND
215- IS_GOOD(fast_lcp, avg_lcp, slow_lcp),
216- (IS_GOOD(fast_inp, avg_inp, slow_inp) OR fast_inp IS NULL) AND
217- IS_GOOD(small_cls, medium_cls, large_cls) AND
218- IS_GOOD(fast_lcp, avg_lcp, slow_lcp)
219- ) AS good_cwv,
220-
221- # WV
222- IS_NON_ZERO(fast_fcp, avg_fcp, slow_fcp) AS any_fcp,
223- IS_GOOD(fast_fcp, avg_fcp, slow_fcp) AS good_fcp,
224- IS_NON_ZERO(fast_ttfb, avg_ttfb, slow_ttfb) AS any_ttfb,
225- IS_GOOD(fast_ttfb, avg_ttfb, slow_ttfb) AS good_ttfb,
226- IS_NON_ZERO(fast_inp, avg_inp, slow_inp) AS any_inp,
227- IS_GOOD(fast_inp, avg_inp, slow_inp) AS good_inp
228- FROM geo_summary
229- ),
230-
231191crux AS (
232192 SELECT
233193 geo,
@@ -249,7 +209,45 @@ crux AS (
249209 good_ttfb,
250210 any_inp,
251211 good_inp
252- FROM base_crux,
212+ FROM (
213+ SELECT
214+ geo,
215+ CASE
216+ WHEN rank <= 1000 THEN ['Top 1k', 'Top 10k', 'Top 100k', 'Top 1M', 'Top 10M', 'ALL']
217+ WHEN rank <= 10000 THEN ['Top 10k', 'Top 100k', 'Top 1M', 'Top 10M', 'ALL']
218+ WHEN rank <= 100000 THEN ['Top 100k', 'Top 1M', 'Top 10M', 'ALL']
219+ WHEN rank <= 1000000 THEN ['Top 1M', 'Top 10M', 'ALL']
220+ WHEN rank <= 10000000 THEN ['Top 10M', 'ALL']
221+ WHEN rank <= 100000000 THEN ['ALL']
222+ END AS eligible_ranks,
223+ CONCAT(origin, '/') AS root_page,
224+ IF(device = 'desktop', 'desktop', 'mobile') AS client,
225+
226+ # CWV
227+ IS_NON_ZERO(fast_fid, avg_fid, slow_fid) AS any_fid,
228+ IS_GOOD(fast_fid, avg_fid, slow_fid) AS good_fid,
229+ IS_NON_ZERO(small_cls, medium_cls, large_cls) AS any_cls,
230+ IS_GOOD(small_cls, medium_cls, large_cls) AS good_cls,
231+ IS_NON_ZERO(fast_lcp, avg_lcp, slow_lcp) AS any_lcp,
232+ IS_GOOD(fast_lcp, avg_lcp, slow_lcp) AS good_lcp,
233+ IF('${ pastMonth } ' < '2024-01-01',
234+ (IS_GOOD(fast_fid, avg_fid, slow_fid) OR fast_fid IS NULL) AND
235+ IS_GOOD(small_cls, medium_cls, large_cls) AND
236+ IS_GOOD(fast_lcp, avg_lcp, slow_lcp),
237+ (IS_GOOD(fast_inp, avg_inp, slow_inp) OR fast_inp IS NULL) AND
238+ IS_GOOD(small_cls, medium_cls, large_cls) AND
239+ IS_GOOD(fast_lcp, avg_lcp, slow_lcp)
240+ ) AS good_cwv,
241+
242+ # WV
243+ IS_NON_ZERO(fast_fcp, avg_fcp, slow_fcp) AS any_fcp,
244+ IS_GOOD(fast_fcp, avg_fcp, slow_fcp) AS good_fcp,
245+ IS_NON_ZERO(fast_ttfb, avg_ttfb, slow_ttfb) AS any_ttfb,
246+ IS_GOOD(fast_ttfb, avg_ttfb, slow_ttfb) AS good_ttfb,
247+ IS_NON_ZERO(fast_inp, avg_inp, slow_inp) AS any_inp,
248+ IS_GOOD(fast_inp, avg_inp, slow_inp) AS good_inp
249+ FROM geo_summary
250+ ),
253251 UNNEST(eligible_ranks) AS rank
254252),
255253
0 commit comments