2

Google BigQuery API でクエリを実行しようとしたところ、次のような例外が発生しました。

「関数 IF の引数の型が一致しません: 'distinctPlayers' は型 'TYPE_UINT64'、'0' は型 'TYPE_INT32' です。」

クエリが大きすぎるので、失敗した部分だけを書きました。

QUERY : sum(if(action_type == 3, distinctPlayers, 0)) as Game_Viral_Acceptor_Count

私が理解したのは次のとおりです。

if condition is true 
then set distinctPlayers of type unsigned int64 
otherwise set 0 which is of type int32

throughに変換unsigned int64する方法について、誰でも光を当てることができますか。signed intBigQuery

前もってありがとう、オムカー

4

1 に答える 1

1

あなたの質問に答えるために、signed int にキャストする方法は、INTEGER関数を使用することです。したがって、正常に実行できるはずです

... SUM(IF(action_type == 3, INTEGER(distinctPlayers), 0)) AS ...

ただし、表示されているメッセージは実際には BigQuery のバグを示しています。現在、バグを社内で報告しています。

于 2012-06-17T05:34:33.633 に答える