配置单元查询-从每个组中获取多个字段的最大值和总和

6ioyuze2  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(390)

我有一张table如下:

id | most_recent_run  | flag1 | flag2
---+------------------+-------+------
1  | 2017-01-01 10:40 | 0     | 1
1  | 2017-01-01 18:30 | 1     | 1 
2  | 2017-02-28 04:30 | 1     | 0

我想查询这个表,以便 id ,我明白了 max(most_recent_run) , sum(flag1) 以及 sum(flag2) . 这应该是查询结果:

id | max_most_recent_run | flag1_count | flag2_count
---+---------------------+-------------+------------
1  | 2017-01-01 18:30    | 1           | 2
2  | 2017-02-28 04:30    | 1           | 0

我尝试过使用collect和rank函数的组合来编写这个查询,但是没有得到预期的结果。
如能就此作出任何解释或指示,将不胜感激。
谢谢!

6jjcrrmo

6jjcrrmo1#

你应该使用sql group by 语句,然后使用 max 以及 sum 功能,即:

select id,
    max(most_recent_run) as max_most_recent_run,
    sum(flag1) as flag1_count,
    sum(flag2) as flag2_count
from my_table
group by id

相关问题