Bigquery有1000多个案例陈述

时间:2018-05-10 20:16:34

标签: google-bigquery

我有一个包含大约5亿条记录的数据集,我需要根据案例状态的顺序处理派生出两列,如

Select Field1,
Field2,
Case when (expression1a and expression2c and expression 3d)
     Then ‘abc’
Case when (expression1b and (expression 2f or expression 3))
     Then ‘def’
Case when (expression1x and expression 2f and expression 3)
     Then ‘ghi’
Case when (expression1 and expression 2n and expression 3)
     Then ‘nop’
....
.....
......
.....
Else ‘unp’ end as field3
From table

如此庞大的查询长度,我也面临着250k字符限制的问题。有没有更好的方法在谷歌云上处理这种情况?

1 个答案:

答案 0 :(得分:1)

我知道如何解决问题的唯一方法是创建一个表并填充一列,您可以列出所有这些变量。类似的东西:

SELECT field1 as tmp
FROM humongoustable
WHERE tmp IN (SELECT words from smaller_table)

您可以为所需的每个变量执行此操作,并希望能够在限制下完成查询。

您还可以查看其他内容,即根据您要查找的值在表中创建新列,并将其填充为True / False,并根据这些新列执行过滤器和连接。这些列可以位于其他表中,也可以位于同一个表中。