如何在不使用窗口函数的情况下在大查询中选择 max(date)?

Posted

技术标签:

【中文标题】如何在不使用窗口函数的情况下在大查询中选择 max(date)?【英文标题】:How to select max(date) in Big query without using a window function? 【发布时间】:2016-05-26 13:11:05 【问题描述】:

我正在尝试在名为 stamp: '20160523' 的字符串字段中选择最新日期。我可以通过 DATE(stamp) 对其进行转换,但是当我尝试查询 MAX(DATE(stamp)) 时,它不会选择最新日期,而只是输出转换后的时间戳 '2016-05-23'。

SELECT MAX(DATE(stamp)) FROM WHERE a=b...

任何想法我做错了什么以及如何在不使用窗口功能的情况下做到这一点?

非常感谢您! G

【问题讨论】:

这里的group by这里MAX需要一个group by。 【参考方案1】:

抱歉,尚不清楚您的问题到底是什么,因为它对我来说非常有效

SELECT MAX(a) FROM (SELECT DATE('20160523') as a), (SELECT DATE('20170301') as a)

您可以复制粘贴它并运行它,这对于了解操作员的工作方式非常有用。 但我不建议将 MAX 用于字符串(因为 DATE 返回字符串)。使用带有时间戳的 MAX,例如

select date(max(a)) from (select TIMESTAMP('20160523') as a), (select TIMESTAMP('20170301') as a)

【讨论】:

【参考方案2】:

请尝试以下查询。

select max(x) from UNNEST([ TIMESTAMP('2017-07-01T14:59:55.711Z'), TIMESTAMP('2021-07-01T14:59:55.711Z')]) as x

【讨论】:

以上是关于如何在不使用窗口函数的情况下在大查询中选择 max(date)?的主要内容,如果未能解决你的问题,请参考以下文章

如何在不点击标记的情况下在 iOS 谷歌地图中显示信息窗口?

有没有办法在不使用用户定义函数的情况下在 SQL 中动态执行查询?

如何在不使用 -webkit-app-region 的情况下在 Electron 中移动无框窗口

如何在不使用 Segue 的情况下在单独的 UIViewController 中选择实例变量

如何在不使用 join 或 cte 的情况下在同一查询中使用动态生成的列

如何在不知道查询结果类型的情况下在 EF/VB.net 中运行存储过程?