2017-01-12 4 views
0

私は標準のSQLでこのクエリを持っています。次のエラーをreturntstimestamp_truncでグループ化できません

select timestamp_trunc(endTime, MONTH), count(1) 
from `simple_table` 
group by timestamp_trunc(endTime, MONTH); 

グループ化することも、[1時24分]

しかしながら

、次のコードで集計されどちら

SELECTリスト発現リファレンスカラムendTimeは:

select timestamp_trunc(endTime, MONTH) 
from `simple_table` 
limit 10 

完全に動作します。私が行方不明であることによってグループを行うBigQueryの能力に関する隠れた参考資料がありますか?

答えて

2

はちょうど

select timestamp_trunc(endTime, MONTH), count(1) 
from `simple_table` 
group by 1 

または

select timestamp_trunc(endTime, MONTH) as m, count(1) 
from `simple_table` 
group by m 

以下のように私は何が起こることはGROUP BY内の関数/式を使用することに問題はないと思うのではなく、エンジンがそれを認識していないということですSELECTリストのフィールドの式とGROUP BYの式は同じです。むしろそれらは異なって扱われるので、エンジンのendTimeは "孤児"(集約もグループ化もされていません)です。

たとえば、以下のように動作します(もちろん、必要なものではありませんが、表現)

select count(1) 
from `simple_table` 
group by timestamp_trunc(endTime, MONTH) 
+0

ありがとう、私はこれを共に計算しました。それ。そうです。クレイジー。それは本当に今はグループのSQL 2011標準ですか? – mcpeterson

+0

が回答で追加されました –

+0

[GROUP BYリストの式を繰り返すための機能要求](https://code.google.com/p/google-bigquery/issues/detail?id=814)も参照してください。 –

関連する問題