BigQuery 物化视图 - 组中最后一个

2024-03-12

在 BigQuery 中,是否可以创建一个物化视图,其中包含基表中每个组的最新行。

e.g.

CREATE TABLE basetable (
  group_id INT64, timestamp TIMESTAMP, value FLOAT64
);

INSERT INTO basetable (group_id, timestamp, value) VALUES
(1, '2020-01-01', 0.1), 
(1, '2020-01-02', 0.2),
(2, '2020-01-02', 0.1),
(2, '2020-01-01', 0.2);
Base table
+----------+--------------+-------+
| group_id | timestamp    | value |
+----------+--------------+-------+
|    1     | '2020-01-01' |   0.1 |
|    1     | '2020-01-02' |   0.2 |
|    2     | '2020-01-02' |   0.1 |
|    2     | '2020-01-01  |   0.2 |
+----------+--------------+-------+

我希望物化视图如下所示

Materialized view 
+----------+--------------+-------+
| group_id | timestamp    | value |
+----------+--------------+-------+
|    1     | '2020-01-02' |   0.2 |
|    2     | '2020-01-02' |   0.1 |
+----------+--------------+-------+

BigQuery 物化视图不支持分析函数或联接。 还有其他方法可以创建这样的视图吗?


您最多可以这样做,请注意结果是一个包含一项的数组

CREATE MATERIALIZED VIEW  name as
SELECT group_id,
max(t.timestamp) as timestamp,
ARRAY_AGG(t.value  IGNORE NULLS ORDER BY t.timestamp DESC LIMIT 1) as value 
FROM table t
group by group_id

那么你还需要一个视图

create view viewname as
SELECT group_id,timestamp
cast(value [safe_offset(0)] as string) as  value 
FROM materialized_view
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

BigQuery 物化视图 - 组中最后一个 的相关文章

随机推荐

  • 检查用户是否在 C 中输入字母或数字

    有没有一种简单的方法来调用 C 脚本来查看用户是否输入了英文字母表中的字母 我在想这样的事情 if variable a z printf You entered a letter You must enter a number else
  • Mysql 读锁 SELECT FOR UPDATE

    EDIT I use Node js felixge mysql https github com felixge node mysql pooling connections并有一个poolmysql 连接数 ORIGINAL 我有一个
  • APK 安装失败:[INSTALL_FAILED_VERIFICATION_FAILURE]

    我正在尝试在运行 Jelly Bean 4 2 AOSP 版本的设备上安装 APK 当我 adb install my apk 时 出现错误 安装 失败 验证 失败 我尝试使用 testsign jar 来 签名 apk 但它不会改变结果
  • RegExpValidator 无法正确验证 URL 模式

    The URL http www ftd de rss2 http www ftd de rss2当我在这个 不冒险的 中对照下面的正则表达式检查它时 它是无效的
  • aapt.exe'' 以非零退出值 1 完成

    我有问题 当我运行我的应用程序时写 Error Execution failed for task app processDebugResources gt com android ide common process ProcessExc
  • 如何从命令行启动SVN项目?

    因此 我在本地计算机上创建了一个 Ruby on Rails 应用程序 我有一个我创建的远程存储库 现在我如何第一次签入 我以前从未创建过自己的svn项目 所以我不知道该怎么做 我只对我从事过的项目做出了承诺 解决方案 cd my proj
  • jQuery mouseoverIntent 不起作用,但悬停可以

    我有以下代码 document ready function yearInner hide year this hover function yearInner this slideToggle 它隐藏了带有 YearInner 类的 di
  • 如何删除选取框中的尾随空格?

    我开发了一个不断向上移动的大帐篷 但确切的问题是 在滚动完最后一个图像后 第一个图像和最后一个图像之间存在巨大的差距 我只想删除附加到最后一张图像底部的尾随空格 有没有人帮我找出解决方案 提前致谢 HTML div style margin
  • @font-face 在 Firefox 中不起作用?

    这是由 FontSquirrel 生成的代码 在所有其他浏览器 包括 IE 中都可以正常工作 但在强大的 Firefox 中却不行 我究竟做错了什么 ps 我使用的是FF3 5 如果您无法查看我的示例 请参阅以下来源
  • Android手机休眠时网络访问

    我正在使用警报组合 设置为AlarmManager 和后台服务定期同步我的应用程序中的数据 我遇到的唯一问题是 当睡眠策略终止 Wi Fi 连接时 同步将不再起作用 有没有办法 唤醒 已进入睡眠状态的 Wi Fi 连接 GMail 以某种方
  • XA/JTA 事务还在使用吗?

    我有一个与多个数据库和一些自定义服务交互的应用程序 对于某些操作 我需要类似事务的行为 其中一组更改要么跨所有数据库 服务提交 要么在发生错误时全部回滚 X Open 组的 XA 标准和 Java JTA 似乎使用两阶段提交过程正好解决了这
  • 如何在 Haskell 中连接变量参数?

    Shell monad 支持可变参数 https hackage haskell org package shell monad 0 6 9 docs Control Monad Shell html t CmdParams 但是我找不到一
  • 如何从供应商目录生成 laravelcomposer.json? [复制]

    这个问题在这里已经有答案了 在我的 Laravel 项目中composer json and composer lock文件被删除了 不知道如何重建composer json从现有的文件vendor目录 Note 使用此方法的缺点是主com
  • SwiftUI:如何获取动态列表或 LazyVStack 中的视图框架

    我想在 LazyVStack 中获取视图的框架 嵌入 ScrollView 中的 LazyVStack 显示聊天消息 文本和图像 因为内容是动态调整大小的 所以我无法使用 GeometryReader 代理 将 GeometryReader
  • 如何在抽象类中声明重载运算符并在派生的非抽象类中重写它?

    我正在尝试编写一个带有一些纯虚拟二元运算符的抽象类 这些运算符应该由派生类实现以实现运算符多态性 这是一个简化的示例 class Base public virtual const Base operator const Base cons
  • Jquery:对一个 .click 事件使用两个选择器?

    如果我有这样的事情 jq elements children input click function 如何向其中添加另一个选择器 以便单击任一选择器时都会触发相同的事件 基本上需要这样的东西 jq elements jq another
  • 如何确定特定 Sql Server 2000 数据库中任何记录的最后更改时间?

    我有一个很少更新的 SQL Server 2000 数据库实例 我还有一个数据库表 其中没有保存每行的创建日期或修改日期的列 有什么方法可以确定上次对整个数据库执行更新或插入的时间 以便我至少可以限制表中的特定记录何时可能发生更改 注意 我
  • “盒子模型”CSS 有多少种类型?

    盒子模型 CSS 有多少种类型 CSS3 有两种盒子模型 content box and border box content box是默认值 content box content box是自 CSS 版本 1 以来默认的 CSS 盒子模
  • 当 onclientclick 为 false 时阻止 onclick 触发?

    是否可以使用onclientclick用于进行客户端检查的按钮的属性 如果支票退回true 然后开火onclick甚至 如果客户端检查返回false 不要开火onclick event 那可能吗 UPDATE 这两个工作 Stops the
  • BigQuery 物化视图 - 组中最后一个

    在 BigQuery 中 是否可以创建一个物化视图 其中包含基表中每个组的最新行 e g CREATE TABLE basetable group id INT64 timestamp TIMESTAMP value FLOAT64 INS