如何在 SQL 查询中引入 BQ 大数值比较?
Posted
技术标签:
【中文标题】如何在 SQL 查询中引入 BQ 大数值比较?【英文标题】:How to bring in BQ Big Numeric comparision in SQL Queries? 【发布时间】:2021-12-28 05:42:50 【问题描述】:我正在尝试在 google BigQuery 中查询以下内容:
SELECT role FROM `<PROJECT>.<DATABASE>.<TABLE>` WHERE googleId = 109024200300000000000
虽然这不起作用,因为我收到了这个错误:
Invalid integer literal: 109024000000000000000 at [1:85]
我不知道如何告诉 BigQuery 这是一个大数字而不是整数。
我找到的一种方法是:
SELECT role FROM `<PROJECT>.<DATASET>.<TABLE>` WHERE googleId = CAST('109024002200000000000' as BIGNUMERIC) ORDER BY timeStamp DESC LIMIT 1;
但不确定这是否是最有效的方法。
【问题讨论】:
你可以使用更短的版本(没有CAST
) - WHERE googleId = BIGNUMERIC '109024002200000000000'
【参考方案1】:
正如@Mikhail Berlyant 在评论中所建议的那样,您可以通过在值中包含数据类型“BIGNUMERIC”来使用较短的版本(没有 CAST),如下所示。
SELECT role FROM `<PROJECT>.<DATABASE>.<TABLE>` WHERE googleId = BIGNUMERIC '109024002200000000000'
【讨论】:
以上是关于如何在 SQL 查询中引入 BQ 大数值比较?的主要内容,如果未能解决你的问题,请参考以下文章
如何在不创建架构的情况下将 CSV 文件加载到 BigQuery
如何在 WHERE 子句中使用 hits.customDimensions.index 查询 GA 导出到 BQ 模式?