在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
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4499 次 |
最近记录: |