bigquery 中的条件连接

2024-04-23

我有两张桌子。

表 1 是单列整数。

表 2 有三列:start_integer、end_integer、data

简单的查询是将整数列与数据连接起来,其中

  integer >= start_integer AND integer <= end_integer

在许多 SQL 实现中,这可以通过左条件 JOIN ... ON BETWEEN 来完成

SELECT tbl1.integer, tbl2.data FROM tbl1
LEFT JOIN tbl2 ON tbl1.integer BETWEEN tbl2.start_integer AND 
tbl2.end_integer;

但似乎 BigQuery 仅支持仅使用 = 条件的 JOIN ON。

这可以通过交叉联接来完成,但 BigQuery 抱怨我的表太大。 CROSS JOIN EACH 无效。

如何在 BigQuery SQL 的限制内完成此连接任务?

以下是我的 BigQuery SQL:

SELECT tbl1.integer, tbl2.data
FROM bq:data.tbl1 
CROSS JOIN bq:data.tbl2
WHERE tbl1.integer BETWEEN tbl2.start_integer AND tbl2.end_integer;

返回错误:

错误:4.1 - 4.132:JOIN 运算符的右侧表必须是小表。如果左侧表较小,则切换表,或者如果两个表都大于所描述的最大值,则使用 JOIN EACHhttp://goo.gl/wXqgHs http://goo.gl/wXqgHs.


好消息(2016)! BigQuery 现在确实支持不等式联接 - 请务必取消选中“使用旧版 SQL 选项”。

查询示例:

SELECT * 
FROM (
  SELECT 1 x
) a JOIN (
  SELECT 2 y
) b
ON a.x<b.y

使用旧版 SQL:

Error: ON clause must be AND of = comparisons of one field name from each table, ...

使用标准 SQL:

1     2
  • Docs: https://cloud.google.com/bigquery/sql-reference/enabling-standard-sql https://cloud.google.com/bigquery/sql-reference/enabling-standard-sql
  • 讨论:https://code.google.com/p/google-bigquery/issues/detail?id=448#c31 https://code.google.com/p/google-bigquery/issues/detail?id=448#c31
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

bigquery 中的条件连接 的相关文章

随机推荐

  • 学习 CIL [已关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 在 EC2 实例创建中使用“无需密钥对继续”?

    我对 AWS 比较陌生 正在探索不同的可用选项 创建实例时 如果选择 在没有密钥对的情况下继续 我们将无法连接到该实例 文档中还有一条说明 说明不应选择此选项 那么这个选项的主要用途是什么呢 我们应该在哪些场景下使用它 选项Proceed
  • PDO 在 UTF-8 字符处截断字符串[重复]

    这个问题在这里已经有答案了 我使用的是 PHP 5 5 当我尝试在 MySQL 数据库中插入 UTF 8 字符时 PDO 在第一个非 ASCII 字符处将其截断 我已将连接设置为 DB TYPE host DB HOST dbname DB
  • 应用程序图标在 Android 设备上不可见

    我正在开发一款安卓游戏 它工作正常 但我有一个问题 如果我从我的android manifest我的应用程序图标可见 如果我不删除这些行 那么我的应用程序图标在我的 Android 上将不可见
  • 为什么在 CSS 中使用 div 宽度的百分比值?

    我正在阅读有关 css 的文章 我发现许多作者建议对 div 的宽度或高度使用 值 我一直在使用像素 为什么我应该使用 值来表示 div 的宽度或高度而不是像素 有什么优点 我个人不喜欢主要内容区域有 宽度的网站 因为不一致 整个网站最好使
  • 如何从 Java watchservice 取消注册目录?

    我向我的 watchService 注册了一个文件夹 path register watchService ENTRY CREATE ENTRY DELETE ENTRY MODIFY 后来我想取消这个注册 我知道我需要以某种方式告诉 wa
  • Ember 数据保存关系

    我很难在 ember 数据中保存一对多关系 我有这样的关系 App ParameterSet DS Model name DS attr string regions DS hasMany App Region App Region DS
  • 针对 xsd 的 xml 模式转换问题在 Android 应用程序中给出非法异常

    我已经编写了一段代码来根据我的 android 应用程序中给定的 xsd 文件验证给定的 xml 文件 但它给出了非法异常错误 在一些帖子中我看到它是因为 java 版本较低 但我的java版本是1 6 0 20 请检查下面的代码 错误日志
  • UnicodeEncodeError:“ascii”编解码器无法编码字符[...]

    我已阅读如何非 Unicode http docs python org howto unicode html来自官方文档和完整 非常详细的article http boodebr org main python all about pyt
  • Django - 显示 ModelForm 外键字段

    型号及形式 class Book models Model author models ForeignKey User name models CharField max length 50 class BookForm forms Mod
  • 使用 applescript 在 Outlook 中创建带附件的邮件

    我正在尝试在 Microsoft Outlook 版本 15 6 中打开一个新消息窗口并填充包括附件在内的字段 这是我的动作脚本代码 tell application Microsoft Outlook set newMessage to
  • 如何通过反射区分值类型、可为空值类型、枚举、可为空枚举、引用类型?

    如何通过反射区分值类型 可为空值类型 枚举 可为空枚举 引用类型 enum MyEnum One Two Three class MyClass public int IntegerProp get set public int Nulla
  • 如何使用浮点数组中的数据初始化 cv::Mat

    我需要创建一个cv Mat用我的数据初始化的变量float 大批 这应该是基本的 但我很难弄清楚 我有代码 float matrixAB lt 120 floating point array created elsewhere gt cv
  • iOS 8 中的自定义键盘可以添加新字符吗?

    在 iOS 8 中 Apple 为开发人员提供了创建自定义键盘的能力 在里面文档 https developer apple com library prerelease ios documentation General Conceptu
  • vim可以实时监控文件的变化吗

    我的问题与此类似如何实时监控文本文件 https stackoverflow com questions 18632 how to monitor a text file in realtime但我想在vim中做 我知道我可以读取打开的文件
  • 两个或多个 Android 设备之间的 WiFi 聊天

    我想开发一个聊天应用程序 使用 wifi 网络在两个或多个 Android 设备之间聊天 该应用程序应该能够相互发送或接收字符串 我有在pc和android之间使用蓝牙网络的经验 任何人都可以给我任何建议或正确的方向 提前致谢 您可以在两个
  • 从班级内部传递代表

    trackableCollection正确注入Fragment and Activity有 AndroidEntryPoint 现在我需要将其注入 CustomView 中但在构造函数中 WithFragmentBindings Andro
  • 一次绘制一个图形而不关闭旧图形(matplotlib)

    有没有一种方法可以一次绘制一组图形 而不关闭前一个图形 保持对 UI 的控制 并在最后保持图形打开 也许使用更合适的后端 或者使用 OO 风格而不是下面使用的 pyplot pylab 风格来编写它 例如我知道我能做到 plt ioff f
  • 为 Mac OS X 10.6.8 安装 Pygame

    使用Python 2 7 2 当我尝试导入 pygame 时 收到此错误消息 Traceback most recent call last File
  • bigquery 中的条件连接

    我有两张桌子 表 1 是单列整数 表 2 有三列 start integer end integer data 简单的查询是将整数列与数据连接起来 其中 integer gt start integer AND integer lt end