diff --git a/sql/moz-fx-data-shared-prod/mdn/legacy_action/view.sql b/sql/moz-fx-data-shared-prod/mdn/legacy_action/view.sql index ba5e6b5f446..db7ef2123e7 100644 --- a/sql/moz-fx-data-shared-prod/mdn/legacy_action/view.sql +++ b/sql/moz-fx-data-shared-prod/mdn/legacy_action/view.sql @@ -102,10 +102,20 @@ CREATE OR REPLACE VIEW STRUCT( ARRAY( SELECT AS STRUCT - REGEXP_EXTRACT(kv, r'^utm_(.*?)=') AS key, - REGEXP_EXTRACT(kv, r'=(.*)$') AS value + key, + value FROM - UNNEST(REGEXP_EXTRACT_ALL(JSON_VALUE(event_extra.url), r'[?&](utm_[^&]+)')) AS kv + ( + SELECT + REGEXP_EXTRACT(kv, r'^utm_(.*?)=') AS key, + REGEXP_EXTRACT(kv, r'=(.*)$') AS value, + off + FROM + UNNEST(REGEXP_EXTRACT_ALL(JSON_VALUE(event_extra.url), r'[?&](utm_[^&]+)')) AS kv + WITH OFFSET off + ) + QUALIFY + ROW_NUMBER() OVER (PARTITION BY key ORDER BY off DESC) = 1 ) AS page_utm ) AS labeled_string, STRUCT(CAST(NULL AS ARRAY) AS navigator_user_languages) AS string_list, diff --git a/sql/moz-fx-data-shared-prod/mdn/legacy_page/view.sql b/sql/moz-fx-data-shared-prod/mdn/legacy_page/view.sql index a79c3f6d633..7a5f41f70f4 100644 --- a/sql/moz-fx-data-shared-prod/mdn/legacy_page/view.sql +++ b/sql/moz-fx-data-shared-prod/mdn/legacy_page/view.sql @@ -77,10 +77,20 @@ CREATE OR REPLACE VIEW STRUCT( ARRAY( SELECT AS STRUCT - REGEXP_EXTRACT(kv, r'^utm_(.*?)=') AS key, - REGEXP_EXTRACT(kv, r'=(.*)$') AS value + key, + value FROM - UNNEST(REGEXP_EXTRACT_ALL(JSON_VALUE(event_extra.url), r'[?&](utm_[^&]+)')) AS kv + ( + SELECT + REGEXP_EXTRACT(kv, r'^utm_(.*?)=') AS key, + REGEXP_EXTRACT(kv, r'=(.*)$') AS value, + off + FROM + UNNEST(REGEXP_EXTRACT_ALL(JSON_VALUE(event_extra.url), r'[?&](utm_[^&]+)')) AS kv + WITH OFFSET off + ) + QUALIFY + ROW_NUMBER() OVER (PARTITION BY key ORDER BY off DESC) = 1 ) AS page_utm ) AS labeled_string, STRUCT(CAST(NULL AS ARRAY) AS navigator_user_languages) AS string_list,