Большой запрос: LEFT OUTER JOIN не может быть использован без условия, которое является равенством полей с обеих сторон соединения - PullRequest
0 голосов
/ 19 апреля 2020

Помогите, пожалуйста. Я создал следующий запрос, но проблема gen, и я не понимаю, как ее исправить введите описание изображения здесь

SELECT
tb1.*
FROM
(SELECT
tb1.date,
  clientId,
  REGEXP_EXTRACT (hits.pagePath,"^([^\?]+)\?")  as page_url,
  hits.type as type,
  hits.eventInfo.eventCategory AS eventCategory,
  hits.eventInfo.eventAction AS eventAction,
  hits.eventInfo.eventLabel AS person_email,
FROM
  `table` AS tb1, UNNEST (hits) AS hits) as tb1


  where tb1.type = "pageview" or (tb1.eventCategory = "Enroll_Free_lecture" and 
  exists (select tb2.date, tb2.type from(select date, hitss.type as type  From `table`
  as tb2, UNNEST(hits) as hitss) tb2 where tb2.date <= tb1.date and tb2.type = "pageview" )) 

1 Ответ

1 голос
/ 20 апреля 2020

Ниже для BigQuery Standard SQL

#standardSQL
SELECT * EXCEPT(flag)
FROM (
  SELECT
    tb1.date,
    clientId,
    REGEXP_EXTRACT (hits.pagePath,"^([^\?]+)\?")  AS page_url,
    hits.type AS type,
    hits.eventInfo.eventCategory AS eventCategory,
    hits.eventInfo.eventAction AS eventAction,
    hits.eventInfo.eventLabel AS person_email,
    COUNTIF(type = "pageview") OVER(ORDER BY `date`) AS flag
  FROM `table` AS tb1, 
  UNNEST (hits) AS hits
)
WHERE type = "pageview" OR (
  eventCategory = "Enroll_Free_lecture" 
  AND flag > 0
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...