【发布时间】:2015-04-17 13:38:45
【问题描述】:
在 bigquery 中,我希望能够通过在另一列上应用条件来选择不在按列分组列表中的列。
假设我有以下列
group, id, datecreated
和以下查询:
select group, max(datecreated) from table group by group
我希望查询还返回带有max(datecreated) 的行的id
到目前为止,我已经了解到聚合函数仅适用于一列。一个想法是连接创建日期和id,获取 MAX(),然后使用正则表达式提取 ID。
我觉得应该有一个更简单的解决方案。
【问题讨论】:
-
SELECT id FROM table ORDER BY datecreated DESC GROUP BY group LIMIT 1. 最近的日期将在顶部.... 除非我遗漏了什么。
-
我需要能够返回每个组内按日期创建的第一行
-
然后在你的问题中编辑这个?它当前的读取方式看起来确实像是您正在从 ONE 组中寻找 ONE ID :)。示例输入/所需输出总是有助于解决数据库问题
-
您也可以查看这个答案 - stackoverflow.com/questions/29681036/…,它显示了两种替代方法。首先类似于 Pentium10 答案,但使用 FIRST_VALUE 和 LAST_VALUE 函数。
标签: google-bigquery