在 BigQuery 中构建笛卡尔连接的简洁方法 (SQL)
Clean way to construct cartesian joins in BigQuery (SQL)
我有多个列表,我想使用 SQL 构建这些列表的笛卡尔连接。我想知道您是否知道比下面的方法更简洁的方法。谢谢
with letters_table AS (Select letters from UNNEST(['A','B','C']) letters)
,numbers_table AS (Select numbers from UNNEST([1,2,3]) numbers)
select letters,numbers,concat(letters,'-',numbers) as concat
from letters_table
cross join
numbers_table
您的查询看起来不错,但没有理由使用 CTE:
select letter, number, concat(letter, '-', number) as concat
from unnest(['A', 'B', 'C']) letter cross join
unnest([1, 2, 3]) number
更简洁的版本(BigQuery 标准 SQL)
SELECT letters,numbers, letters || '-' || numbers AS `concat`
FROM letters_table, numbers_table
我有多个列表,我想使用 SQL 构建这些列表的笛卡尔连接。我想知道您是否知道比下面的方法更简洁的方法。谢谢
with letters_table AS (Select letters from UNNEST(['A','B','C']) letters)
,numbers_table AS (Select numbers from UNNEST([1,2,3]) numbers)
select letters,numbers,concat(letters,'-',numbers) as concat
from letters_table
cross join
numbers_table
您的查询看起来不错,但没有理由使用 CTE:
select letter, number, concat(letter, '-', number) as concat
from unnest(['A', 'B', 'C']) letter cross join
unnest([1, 2, 3]) number
更简洁的版本(BigQuery 标准 SQL)
SELECT letters,numbers, letters || '-' || numbers AS `concat`
FROM letters_table, numbers_table