Приходя к BigQuery несколько недавно из Postgres - я привык довольно регулярно использовать следующий шаблон в определенных случаях, но, конечно, не там, где набор CTE был бы слишком большим.

with cte1 as (
   select id from my_table where feature1 = x, feature2 = y
)
select id, detail1, detail2, detail3 from my_table
    where id = ANY( select id from cte1 )

Что-то вроде использования моего CTE в качестве места для сбора записей, представляющих особый интерес (что-то общее, что-то необычное, выбросы, подделки и т. Д.), А затем передачи этого моему основному выбору с использованием шаблона id = ANY( select id from CTE ).

Что было бы эквивалентом в BigQuery?

0
sgoley 10 Фев 2021 в 06:05

1 ответ

Лучший ответ

Эквивалент

where id in ( select id from CTE )    

Итак, ваш запрос может выглядеть так, как показано ниже

with cte1 as (
   select id from my_table where feature1 = x and feature2 = y
)
select id, detail1, detail2, detail3 from my_table
    where id in ( select id from cte1 )
2
Mikhail Berlyant 10 Фев 2021 в 03:08