Изменить часть строки, используя BigQuery REGEXP_REPLACE - PullRequest
0 голосов
/ 03 апреля 2019

Интересно, сможет ли кто-нибудь помочь мне, пожалуйста?

В моем поле eventinfo.eventLabel в моей таблице больших запросов содержатся следующие данные:

Просмотреть красный код представления дляГруппа BDAT

SELECT
  #select all fields excluding those under the hits record
  * EXCEPT (hits),
  #start array - this rebuilds the hit record
  ARRAY(
  SELECT
    #unnest the hit field, select each field excluding those under the page record
    AS STRUCT * EXCEPT (eventInfo ),
    (
    SELECT
      #select all page fields excluding pageTitle
      AS STRUCT eventInfo.* EXCEPT (eventLabel),
      #remove the query parameter from the pagePath fields
      REGEXP_REPLACE(eventinfo.eventLabel, r'View\sView .*', 'View View redacted') AS eventLabel) AS eventinfo
  FROM
    UNNEST(hits) ) AS hits
FROM
  `bigquery.Tested.ga_sessions_20180801` 

Я пытаюсь удалить элемент данных «Красный код» и заменить его термином «отредактировано».

Обратите внимание что «красный код» не единственное значение и количество символов может увеличиваться и уменьшаться.Но «View View» и «for» постоянны во всех моих данных.

Я знаю, что проблема в строке REGEXP REPLACE, и мне удается поместить «отредактированный» текст в поле, ноЯ не смог удалить текст «Красный код».

Может ли кто-нибудь взглянуть на это и предложить несколько советов о том, как я могу это изменить.

Большое спасибо иС уважением

Крис

1 Ответ

0 голосов
/ 03 апреля 2019
select 
  [
  REGEXP_REPLACE('View View Code red for the BDAT group', r'View View .*? for the', 'View View redacted for the'),
  REGEXP_REPLACE('View View Code blue for the BDAT group', r'View View .*? for the', 'View View redacted for the'),
  REGEXP_REPLACE('View View red code for the BDAT group', r'View View .*? for the', 'View View redacted for the')
  ]

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...