在雪花中使用MAX函数和ORDERBY的问题 [英] Issues using Max function and orderby in snowflake
本文介绍了在雪花中使用MAX函数和ORDERBY的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我是雪花新手,我正在尝试运行一些SQL查询来获取最新日期及其相关IP
表名:lex
id | 日期 | IP |
---|---|---|
001 | 2022-01-14 15:03:43.000 | 5.3.3.46.173 |
001 | 2021-01-14 15:03:43.000 | 9.3.3.26.193 |
002 | 2022-01-14 15:03:43.000 | NULL |
001 | 2021-01-13 15:03:43.000 | 4.3.9.46.173 |
002 | 2022-01-10 15:03:43.000 | 8.1.3.26.122 |
003 | 2022-01-14 15:03:43.000 | 7.3.3.66.177 |
我要实现的目标
id | 日期 | IP |
---|---|---|
001 | 2022-01-14 15:03:43.000 | 5.3.3.46.173 |
002 | 2022-01-14 15:03:43.000 | NULL |
003 | 2022-01-14 15:03:43.000 | 7.3.3.66.177 |
我到目前为止所做的工作
Select id,
date,
ip
From lex
where date = (Select Max(date) from lex)
此代码只给我一行,而不是三行
推荐答案
使用QUALIFY
:
SELECT *
FROM lex
QUALIFY ROW_NUMBER() OVER(PARTITION BY id ORDER BY date DESC) = 1;
如果每个ID可以完全同时有多行,则应改用RANK
。
这篇关于在雪花中使用MAX函数和ORDERBY的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文