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

任何人都可以阐明如何转换unsigned int64signed intthrough BigQuery

提前致谢, 奥姆卡尔

4

1 回答 1

1

要回答您的问题,您转换为 signed int 的方式是通过该INTEGER函数。所以你应该能够成功运行

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

但是,您看到的消息实际上指向 BigQuery 中的一个错误——我现在正在内部提交该错误。

于 2012-06-17T05:34:33.633 回答