BigQuery — COUNTIF Unixtimestamp соответствует event_date в формате YYYYMMDD?

#google-bigquery

#google-bigquery

Вопрос:

Я работаю с приложением Google Analytics и веб-данными в BigQuery. Я хочу считать пользователя КАК new_user, КОГДА значение user_first_touch_timestamp совпадает со значением даты события в таблице. Это привело бы к подсчету новых пользователей, посетивших сайт в определенный день. Пример значения в user_first_touch_timestamp 1595912758378962 Пример значения в event_date 20200809 Как я могу это сделать? Спасибо.

Ответ №1:

Ниже приведен стандартный SQL BigQuery

Вы должны проанализировать оба значения с одинаковым типом ДАТЫ — как показано ниже

 PARSE_DATE('%Y%m%d', event_date) AS event_date_day   
  

и

 DATE(TIMESTAMP_MICROS(user_first_touch_timestamp)) AS user_first_touch_timestamp_day    
  

После этого вы можете выполнять любое сравнение, которое вам нужно

Например, если вы хотите использовать его в предложении WHERE, это может выглядеть следующим образом

 WHERE PARSE_DATE('%Y%m%d', event_date) = DATE(TIMESTAMP_MICROS(user_first_touch_timestamp))
  

Комментарии:

1. Спасибо, Михаил. Когда я пытаюсь запустить новый запрос, я получаю эту ошибку: Нераспознанное имя: event_date_day; Вы имели в виду event_date? в [7:7]. Я пытаюсь использовать, ГДЕ значение в одном поле = значение в другом поле ВЫБЕРИТЕ PARSE_DATE(‘%Y%m%d’, event_date) КАК event_date_day, ДАТА(TIMESTAMP_MICROS(user_first_touch_timestamp)) КАК user_first_touch_timestamp_day, COUNT (DISTINCT(user_pseudo_id)) КАК new_users, ИЗ project-table ГДЕ event_date_day = user_first_touch_timestamp_day

2. смотрите дополнение в ответе