できるだけ明確に問題を説明しようとしますが、そうでない場合は教えてください。BigQueryの繰り返しフィールドの合計
私はこのようになりますテーブル[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
を照会した場合、私は次のような結果を得る:私はSELECT chn, auds FROM [MyTable] WHERE (chn = 1 OR chn = 2)
を照会した場合、私は次のような結果を得る
-------------------
|Row | chn | auds |
-------------------
|1 |1 |3916 |
|2 |1 |4983 |
|3 |1 |6233 |
|4 |1 |1214 |
-------------------
:論理的に
-------------------
|Row | chn | auds |
-------------------
|1 |1 |1200 |
|2 |1 |900 |
|3 |1 |2030 |
|4 |2 |2345 |
-------------------
を、私は二倍の結果を得るが、私が得たいのは、chn = 1
とchn = 2
のauds
の繰り返しフィールドの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.
例を1440ではなく2~4の「繰り返し」に簡略化し、入力と出力の明確な例を提供することをお勧めします。 –
@MikhailBerlyantちょっと編集しました。アドバイスありがとうございます。 – leodaily