Hive 查询 - 从每个组中获取多个字段的最大值和总和
Hive Query - Get max and sum of multiple fields from each group
我有一个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
我想查询这个 table,这样对于每个 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
我尝试结合使用收集和排名函数来编写此查询,但没有得到预期的结果。
在这方面的任何解释或指导将不胜感激。
谢谢!
你应该使用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
我有一个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
我想查询这个 table,这样对于每个 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
我尝试结合使用收集和排名函数来编写此查询,但没有得到预期的结果。
在这方面的任何解释或指导将不胜感激。
谢谢!
你应该使用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