LEFT JOIN ON Google BigQuery 中的最近日期

2024-02-21

我有两个表,都有时间戳和更多数据:

Table A

| name | timestamp           | a_data |
| ---- | ------------------- | ------ |
| 1    | 2018-01-01 11:10:00 | a      |
| 2    | 2018-01-01 12:20:00 | b      |
| 3    | 2018-01-01 13:30:00 | c      |

Table B

| name | timestamp           | b_data |
| ---- | ------------------- | ------ |
| 1    | 2018-01-01 11:00:00 | w      |
| 2    | 2018-01-01 12:00:00 | x      |
| 3    | 2018-01-01 13:00:00 | y      |
| 3    | 2018-01-01 13:10:00 | y      |
| 3    | 2018-01-01 13:10:00 | z      |

我想做的是

  1. 对于中的每一行Table A LEFT JOIN最新记录在Table B那早于它。
  2. 当有不止一种可能性时,选择最后一种

目标结果

| name | timestamp           | a_data | b_data |
| ---- | ------------------- | ------ | ------ |
| 1    | 2018-01-01 11:10:00 | a      | w      |
| 2    | 2018-01-01 12:20:00 | b      | x      |
| 3    | 2018-01-01 13:30:00 | c      | z      | <-- note z, not y

我认为这涉及子查询,但我无法让它在大查询中工作。到目前为止我所拥有的:

SELECT a.a_data, b.b_data
FROM `table_a` AS  a  

LEFT JOIN `table_b` AS b 
ON a.name = b.name

WHERE a.timestamp = (
  SELECT max(timestamp) from `table_b` as sub
  WHERE sub.name = b.name
  AND sub.timestamp < a.timestamp
)

在我的实际数据集上,这是一个非常小的测试集(低于 2Mb),查询运行但从未完成。任何指点非常感谢????????


您可以尝试使用选择子查询。

SELECT a.*,(
    SELECT MAX(b.b_data) 
    FROM `table_b` AS b 
    WHERE 
        a.name = b.name 
    and  
        b.timestamp < a.timestamp
) b_data 
FROM `table_a` AS  a

EDIT

或者你可以尝试使用ROW_NUMBER子查询中的窗口函数。

SELECT name,timestamp,a_data , b_data
FROM (
    SELECT a.*,b.b_data,ROW_NUMBER() OVER(PARTITION BY a.name ORDER BY b.timestamp desc,b.name desc) rn 
    FROM `table_a` AS  a  
    LEFT JOIN `table_b` AS b ON a.name = b.name AND b.timestamp < a.timestamp
) t1
WHERE rn = 1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

LEFT JOIN ON Google BigQuery 中的最近日期 的相关文章

  • Pandas/Google BigQuery:架构不匹配导致上传失败

    我的谷歌表中的架构如下所示 price datetime DATETIME symbol STRING bid open FLOAT bid high FLOAT bid low FLOAT bid close FLOAT ask open
  • 时间序列数据的自连接

    我需要一些帮助来完成我认为应该是相当简单的自连接查询 只需要将两条记录中匹配的开始时间和结束时间合并为一条记录 假设我的表中有以下内容 Time Event 08 00 Start 09 00 Stop 10 30 Start 10 45
  • WHERE NOT EXIST 附近的语法错误

    我在堆栈中搜索 但没有一个达到最终答案 我的查询是这样的 INSERT INTO user username frequence autoSend VALUES feri2 3 1 WHERE NOT EXISTS SELECT FROM
  • 更改mysql数据库表中的日期格式

    大家早上好 只是一个简单的问题 在我现有的 MySql 数据库中 我几乎没有包含日期 的列 目前这些是年 月 日格式 但现在我需要将其全部更改为年 月 日格式 我试过了select date format curdate d m Y 但它不
  • 在Oracle中使用IW和MM

    我使用 IW 表示每周结果 使用 MM 表示每月结果 但我总是收到错误 ORA 00979 not a GROUP BY expression 00979 00000 not a GROUP BY expression 我的疑问是这些 We
  • 从 call_log 中获取最大并发通话数

    我需要帮助在 MySQL 5 0 77 中编写一个查询 根据下面所示的数据 办公室一天的通话量 返回并发电话呼叫的峰值数量 我只是想知道一天中任何特定时间同时打电话的人数最多是多少 首先 这是 MySQL 表 CREATE TABLE ca
  • 通过 C# SqlCommand 执行合并语句不起作用

    我正在第一次尝试使用临时表和MERGE语句通过更新 SQL 表SqlCommandC 中的对象 我正在开发的程序旨在首先将大量记录 最多 20k 导出到 Excel 电子表格中 然后 用户可以搜索并替换特定值 并根据需要更新任意多记录中的任
  • 可以有一个带有可变列的表吗?

    这可能是一个愚蠢的问题 但这里是 是否可以创建一个能够包含具有可变列数和自定义列名称的行的动态表 我浏览过 EAV 建模 但看起来很沉重 现实生活中的例子可能是这样的 假设我有一个客户登记册 但每个客户可能需要输入不同的信息 根据您要输入的
  • 处理与不同相关实体的一对多的正确模式

    我有一个 C 项目 我使用实体框架作为 ORM 我有一个User 可以向多家银行付款 每家银行都是一个独立的实体 并且每家银行都由不同的字段描述 问题是 一User可以没有或有很多不同的Banks 我不太确定如何对此进行建模 临时解决方案是
  • MySQL“列计数与第 1 行的值计数不匹配”是什么意思

    这是我收到的消息 ER WRONG VALUE COUNT ON ROW 列计数与第 1 行的值计数不匹配 这是我的全部代码 我的错误在哪里 DROP TABLE student CREATE TABLE employee emp id I
  • Bigquery dbt_external_tables 外部数据配置

    使用 dbt external tables 包时我需要一些帮助 我意识到 在 GCS 中的 csv 中 有些行似乎有换行符 这在尝试查询由宏创建的表时会导致一些问题 有时 手动配置外部表时 BigQuery UI 有两个选项 允许锯齿行
  • 如何将今天的日期返回到 Oracle 中的变量

    我想做这个 DECLARE today as smalldatetime SELECT today GetDate 但我需要一个oracle翻译 甲骨文使用SYSDATE 还有 ANSI 标准CURRENT TIMESTAMP 除其他外 S
  • 随着时间的推移累积(不重叠)——技术?

    我正在尝试找到一种更好的方法来制作水晶报告 其他人的 按组添加不重叠的时间 这显然是一个古老的问题 有没有一种技术可以得到 调整每条记录的 开始 结束 时间 以消除共同 重叠时间 亚组内 使用直接 SQL 尽管我发现我可以执行 CTE 假设
  • 使用 DISTINCT 进行查询需要很长时间

    我正在使用 Microsoft Access 2003 我的项目中的一个表单需要很长时间才能向用户显示 这是适用的查询 SELECT DISTINCT tb KonzeptDaten DFCC tb KonzeptDaten OBD Cod
  • 如何将所有父母的父母作为循环引用表中子对象的列?

    我有一个表格 其中有类似的列 entityID entityName parentID 我如何编写一个查询来返回实体的所有父级级别 以返回类似的内容 childentityname parentlevel1name parentlevel2
  • 使用 Java 在 BigQuery 中保存 Array

    我正在尝试使用 Spark Big Query 连接器将数据保存到 Big 查询中 假设我有一个如下所示的 Java pojo Getter Setter AllArgsConstructor ToString Builder public
  • 从表中选择行,其中另一个表中具有相同 id 的行在另一列中具有特定值

    在 MySQL 中 如果我们有两个表 comments key value 1 foo 2 bar 3 foobar 4 barfoo and meta comment key value 1 1 2 1 3 2 4 1 我想得到来自以下人
  • 如何在 SQL Server 2012 中选择除一列之外的所有列? [复制]

    这个问题在这里已经有答案了 有没有一种方法可以选择所有列 但只选择我不想选择的特定列 我的意思是有时我会遇到这样的问题 表有数百个字段 而我只需要删除一个字段 我需要重写所有列吗 有什么窍门吗 喜欢select
  • 在 Yii 的标准中如何获得计数 (*)

    我正在尝试构建一个具有以下内容的查询group by属性 我正在尝试得到id和count它一直告诉我count is invalid列名 我怎样才能得到count来自group by询问 工作有别名 伊伊 1 1 11 其他不及格 crit
  • 使用函数的 SQL 查询 - 如何获取列表的最大计数

    如何查询 MAXIMUM COUNT 交易次数 我的代码如下 SELECT customer id COUNT customer id FROM rental GROUP BY customer id HAVING MAX COUNT cu

随机推荐

  • 重定向到不同的控制器

    我在 IAuthorizationFilter 中有一些代码 它将用户重定向到登录页面 但我在更改所使用的控制器时遇到了问题 所以我可能会这样做 public void OnAuthorization AuthorizationContex
  • Redux 状态正在更新,无需分派任何操作

    我首先应该说这不是重复的这个问题 恰好有相同的标题 https stackoverflow com questions 48648736 redux state is being edited without dispatching any
  • 正则表达式: boost::xpressive 与 boost::regex

    我想用 C 做一些正则表达式 所以我查看了 interwebz 是的 我是 C 的初学者 中级 并发现这个答案 https stackoverflow com questions 181624 c what regex library sh
  • Angular SSR NgApexcharts SVG 未定义

    最初我在使用 Angular SSR 时遇到了这个包的问题 因为我在导入时遇到了这个错误Window is not defined 但是 你可以在server ts通过以下方式 const MockBrowser require mock
  • Python 重定向(有延迟)

    所以我在 Flask 上运行了这个 python 页面 它工作得很好 直到我想要重定向 app route last visit def check last watered templateData template text water
  • JVM 压缩 Oops 背后的技巧

    So I understand the compressed oops is enabled by default in HotSpot VM now It has support for this from Java SE 6u23 on
  • 具有右锚定静态面板的可变高度 FlowLayoutPanel

    Take a good look at this 我有一个顶部面板它停靠在Top我的形式 AutoSize True AutoSizeMode GrowOnly 在里面我有一个流程布局面板停靠到Fill AutoSize True Auto
  • 如何删除 UITabBarItem SelectionImage 填充?

    我通过 UITabBar 外观将 SelectionIndicatorImage 设置为可拉伸图像 以适应各种设备宽度 UIImage selectedImage UIImage imageNamed SelectedTab stretch
  • Netbeans 模块中的 JAXB

    当我尝试在 netbeans 模块中运行 JAXB 编组器时 它们似乎是一个问题 最初我以为这是节点实现 所以我花了几天时间重新组织一切 但我仍然收到奇怪的错误消息 javax xml bind JAXBException ClassCas
  • 替换for循环Python中的字符串元素

    我正在从文本文件中读取数据 因此每一行都是一个字符串列表 所有这些列表都在数据列表中 所以我的列表看起来像 data row1 row2 etc row1 str1 str2 etc 我正在尝试删除行列表中的字符串中出现的任何 或 符号 我
  • LZW解压算法

    我正在为必须实现 LZW 压缩 解压缩的作业编写一个程序 我为此使用以下算法 压缩 w NIL while read a character k if wk exists in the dictionary w wk else add wk
  • 如何将按钮字体设置为 Marlett

    我正在尝试将按钮的字体设置为系统的 Marlett 字体 然而 虽然我手动设置了font face 但使用了其他字体 此外 当我使用字体对话框为该按钮选择字体时 Marlett 未列出 为什么会这样呢 如何在 NET Windows 窗体控
  • 第一个列表滚动在聚合物中结束后,铁滚动阈值永远不会执行

    我已经使用以下方法完成了iron list and iron scroll threshold为了在聚合物中实现无限滚动 但问题是 loadMoreDatairon scroll threshold在聚合物中第一个列表滚动结束后永远不会执行
  • Symfony 使用哪个单元测试框架?

    Symfony 使用哪个单元测试框架 Lime 还是 PHPUnit 使用它们有什么优点和缺点 在我看来 以下是我想到的一些事情 PHPUnit is more integrated with other tools like for in
  • MonoFoldable 有什么损失吗?

    单折叠 https hackage haskell org package mono traversable 1 0 0 1 docs Data MonoTraversable html t MonoFoldable in the 单通行
  • Laravel 5 MethodNotAllowedHttpException PUT

    我正在尝试更新用户 但是当我点击提交按钮时 Laravel 抛出以下错误 RouteCollection gt methodNotAllowed array GET HEAD POST 在 RouteCollection php 第 206
  • 开玩笑嘲笑参考错误

    我正在尝试使用以下模拟 const mockLogger jest fn jest mock myLoggerFactory gt type gt mockLogger 但是mockLogger会抛出引用错误 我知道笑话试图保护我免于超出模
  • 使用 jquery 禁用提交按钮

    我想在单击表单中的提交按钮后禁用它 以限制用户一次又一次地单击它 我用 jquery 尝试了这个 form submit function var formId this id if formId formId input type sub
  • 通过 PhpStorm 中的 Docker 容器使用 xdebug

    我读过一些关于此的文章 但没有一个对我的案例有帮助 或者只是忽略了缺失的部分 我无法使用 Docker 容器让 xdebug 在 PhpStorm 上工作 Docker compose yml version 2 services web
  • LEFT JOIN ON Google BigQuery 中的最近日期

    我有两个表 都有时间戳和更多数据 Table A name timestamp a data 1 2018 01 01 11 10 00 a 2 2018 01 01 12 20 00 b 3 2018 01 01 13 30 00 c T