BigQuery中2个源表(左外部联接查询)之间匹配时如何返回单行

问题描述 投票:0回答:1

我在BigQuery中有下面的表格

源表:

Col1,Col2
1,'S1'
1,'S2'
2,'S3'

查询表:

Col1,Col2
1,'L1'
1,'L1'
2,'L2'

如果与col1匹配,我需要从查找表中为源的每个传入行获取任何行

预期结果:

Col1, Col2
1,L1
1,L1
2,L2

尝试以下查询:

SELECT T.Col1, T.Col2 FROM ((select PM_ALookup_1.Col1, PM_ALookup_1.Col2,ROW_NUMBER() OVER (PARTITION BY PM_ALookup_1.Col1 ORDER BY PM_ALookup_1.Col1) as rownum FROM TEST.SOURCE LEFT OUTER JOIN TEST.LOOKUP PM_ALookup_1 ON (PM_ALookup_1.Col1 = SOURCE.Col1  AND PM_ALookup_1.Col1 = SOURCE.Col1))) as T where T.rownum=1

但是它返回以下结果:Col1,Col21,L12,L2

google-bigquery
1个回答
1
投票
SELECT *
FROM TEST.LOOKUP
WHERE Col1 IN (
  SELECT DISTINCT Col1 FROM TEST.SOURCE
)
© www.soinside.com 2019 - 2024. All rights reserved.