首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从具有max(时间戳)的两个表中创建新表- Bigquery SQL

从具有max(时间戳)的两个表中创建新表- Bigquery SQL
EN

Stack Overflow用户
提问于 2020-08-19 03:21:16
回答 1查看 24关注 0票数 0

我有两个表,其中retailer和id的组合是两者之间最常见的一个。我需要为第一个表中的所有零售商+ id组合创建一个新表,并为具有最新时间戳的第二个表中的那些零售商创建相应的数据。

第一个表将只有一个记录,每个零售商,id组合,但第二个表将有多个记录,每个零售商,id组合,基于它被抓取的时间,我需要创建一个新的表,其中包含每个组合的最新时间戳数据。

输入表1:

输入表2:

输出表:

EN

回答 1

Stack Overflow用户

发布于 2020-08-19 03:31:59

这基本上就是聚合和join

代码语言:javascript
复制
select *
from table1 t1 left join
     (select t2.retailer, max(timestamp) as max_timestamp
      from table2 t2
      group by t2.retailer
     ) t2
     on using (retailer);

如果您想要整个最新的行,您可以使用以下代码的变体:

代码语言:javascript
复制
select *
from table1 t1 left join
     (select ( array_agg(t2 order by timestamp desc limit 1) )[safe_ordinal(1)].*
      from table2 t2
      group by t2.retailer
     ) t2
     on using (retailer);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63475337

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档