Google Big Query SQL - 获取最新的列值

Eri*_*all 6 sql google-bigquery

我有一个Google Big Query Table,里面有一email列.基本上每行都显示存在该电子邮件地址的用户的状态.我想要查询表格以获得显示每个电子邮件地址的最新行的结果.我已经尝试了各种各样GROUP BY的,JOIN反对自己以及我将在MySQL中使用的通常有趣的东西,但如果整行不匹配,我会不断收到重复的电子邮件.

任何帮助深表感谢!

样本数据

user_email     | user_first_name | user_last_name | time      | is_deleted
test@test.com  | Joe             | John           | 123456790 |  1
test@test.com  | Joe             | John           | 123456789 |  0
test2@test.com | Jill            | John           | 123456789 |  0
Run Code Online (Sandbox Code Playgroud)

因此,如果我想要返回的数据采样:

user_email     | user_first_name | user_last_name | time      | is_deleted
test@test.com  | Joe             | John           | 123456790 |  1
test2@test.com | Jill            | John           | 123456789 |  0
Run Code Online (Sandbox Code Playgroud)

Fel*_*ffa 11

SELECT user_email, user_first_name, user_last_name, time, is_deleted 
FROM (
 SELECT user_email, user_first_name, user_last_name, time, is_deleted
      , RANK() OVER(PARTITION BY user_email ORDER BY time DESC) rank
 FROM table
)
WHERE rank=1
Run Code Online (Sandbox Code Playgroud)