【发布时间】:2016-08-16 15:26:34
【问题描述】:
我会尽可能清楚地解释我的问题,如果不是,请告诉我。
我有一张桌子[MyTable],看起来像这样:
----------------------------------------
|chn:integer | auds:integer (repeated) |
----------------------------------------
|1 |3916 |
|1 |4983 |
|1 |6233 |
|1 |1214 |
|2 |1200 |
|2 |900 |
|2 |2030 |
|2 |2345 |
----------------------------------------
Auds 总是重复 4 次。
如果我查询SELECT chn, auds FROM [MyTable] WHERE chn = 1,我会得到以下结果:
-------------------
|Row | chn | auds |
-------------------
|1 |1 |3916 |
|2 |1 |4983 |
|3 |1 |6233 |
|4 |1 |1214 |
-------------------
如果我查询SELECT chn, auds FROM [MyTable] WHERE (chn = 1 OR chn = 2),我会得到以下结果:
-------------------
|Row | chn | auds |
-------------------
|1 |1 |1200 |
|2 |1 |900 |
|3 |1 |2030 |
|4 |2 |2345 |
-------------------
从逻辑上讲,我得到了两倍的结果,但我想要得到的是重复字段 auds 的 chn = 1 和 chn = 2 的 SUM(),或者在视觉上是这样的:
-------------------
|Row | chn | auds |
-------------------
|1 |3 |5116 |
|2 |3 |5883 |
|3 |3 |8263 |
|4 |3 |3559 |
-------------------
我尝试了一些事情:
SELECT a1+a2 FROM
(SELECT auds AS a1 FROM [MyTable] WHERE chn = 1),
(SELECT auds AS a2 FROM [MyTable] WHERE chn = 2)
但我收到以下错误:
Error: Cannot query the cross product of repeated fields a1 and a2.
【问题讨论】:
-
我建议您将示例简化为 2-4 个“重复”而不是 1440 次,并提供输入和预期输出的清晰示例
-
@MikhailBerlyant 刚刚编辑,感谢您的建议,我希望现在更清楚了。
标签: sql google-bigquery