Не удалось объединить два подзапроса

У меня есть таблица, в которой я хочу: 1) Проверить тех посетителей (VisitorID), которые соответствуют требованию 2) Получить все времена, когда эти посетители пришли на мой сайт.

Я пытался сделать это, объединив свой первый запрос со всеми моими условиями и еще один запрос, в котором я получаю остальные соответствующие переменные.

SELECT ID, h.Info, h.Action
FROM `table` as A,
UNNEST (hits) as h
WHERE (h.Info LIKE '%PPP%' 
OR h.Info LIKE '%BBB%'
OR h.Info LIKE '%SSS%'
OR h.Info LIKE '%FFF%') AND  
h.Category LIKE '%Lock%' AND
(h.Action LIKE '%Regist%' OR h.Action LIKE '%NotR%') AND
h.Label LIKE '%Success%' 
JOIN
SELECT ID, h.Info, h.Action, time, visits, EXTRACT(TIME FROM TIMESTAMP_SECONDS(StartTime)) AS time_visit, PARSE_DATE("%Y%m%d", date) AS date_visit
FROM `table`,
UNNEST (hits) as h
WHERE (h.Info LIKE '%PPP%' 
OR h.Info LIKE '%BBB%'
OR h.Info LIKE '%SSS%'
OR h.Info LIKE '%FFF%') AND 
date > "20190529") AS B ON A.ID = B.ID

Я несколько раз менял JOIN, включал/исключал скобки, и у меня кончились идеи.

почему вы отметили свой вопрос тегом bigquery? принятый ответ не будет работать с bq!

Mikhail Berlyant 28.06.2019 15:17

Я использовал это, и это сработало, поэтому я принял это.

MLMH 28.06.2019 17:55

это было в bigquery? если так - выдаст ошибку - точно! впрочем - мне просто было интересно

Mikhail Berlyant 28.06.2019 17:56
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
1
3
39
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

пойду на cte версию

with cte as
(
SELECT ID, h.Info, h.Action
FROM `table` as A,
UNNEST (hits) as h
WHERE (h.Info LIKE '%PPP%' 
OR h.Info LIKE '%BBB%'
OR h.Info LIKE '%SSS%'
OR h.Info LIKE '%FFF%') AND  
h.Category LIKE '%Lock%' AND
(h.Action LIKE '%Regist%' OR h.Action LIKE '%NotR%') AND
h.Label LIKE '%Success%' 
),
cte1 as
(
SELECT ID, h.Info, h.Action, time, visits, EXTRACT(TIME FROM TIMESTAMP_SECONDS(StartTime)) AS time_visit, PARSE_DATE("%Y%m%d", date) AS date_visit
FROM `table`,
UNNEST (hits) as h
WHERE (h.Info LIKE '%PPP%' 
OR h.Info LIKE '%BBB%'
OR h.Info LIKE '%SSS%'
OR h.Info LIKE '%FFF%') AND 
date > "20190529"
) select cte.*,cte1.* from cte join cte1 on cte.id=cte1.id

Другие вопросы по теме