BigQuery CASE WHSE ELSE语句不完整的结果

时间:2014-03-14 16:17:04

标签: google-bigquery

在BigQuery中使用大型case-when-else语句时,结果不会相加。

有时我们会得到10个桶但不是全部。通常我们按顺序得到几个桶,比如1-8然后我们会期望它返回桶9但它不会,它会返回15或者其他东西。

请注意,这只是一个示例,我们的实际查询有超过100个WHEN语句。在这种情况下,我们可能会得到25个桶,然后重新启动'在列表的某个地方。

“查询参考”未声明WHEN语句的最大数量。那么可能导致这种行为的原因是什么?

SELECT Count(Items) AS item_count, 
CASE 
WHEN (a >= 0 AND a < 50) THEN 1 
WHEN (a >= 50 AND a < 100) THEN 2 
WHEN (a >= 100 AND a < 150) THEN 3 
WHEN (a >= 150 AND a < 200) THEN 4 
WHEN (a >= 200 AND a < 250) THEN 5 
WHEN (a >= 250 AND a < 300) THEN 6 
WHEN (a >= 300 AND a < 350) THEN 7 
WHEN (a >= 350 AND a < 400) THEN 8 
WHEN (a >= 400 AND a < 500) THEN 9 
WHEN (b >= 100 AND b < 200) THEN 10 
WHEN (b >= 200 AND b < 300) THEN 11 
WHEN (b >= 300 AND b < 400) THEN 12 
WHEN (b >= 400 AND b < 500) THEN 13 
WHEN (b >= 500 AND b < 1000) THEN 14 
WHEN (b >= 1000 AND b < 2000) THEN 15 
ELSE -1
END AS bucket
FROM [dataset1.sometable]
GROUP BY bucket

1 个答案:

答案 0 :(得分:3)

事实证明,在我们的情况下不止一个时候可能是真的,这会弄乱结果。 CASE-WHEN-ELSE语句无法处理。