использовать максимум и сумму одновременно - PullRequest
0 голосов
/ 29 августа 2018

У меня есть ситуация, когда я должен суммировать и макс кол-во для обработки нескольких записей в день. У меня есть входная таблица в Cloudera Hive как:

    ----------------------------
    date1    |  date2    |  qty
    ----------------------------
    20180101 | 20180101 |   50
    ----------------------------
    20180101 | 20180101  |  15
    ----------------------------
    20180101 | 20180102  | 1
    ----------------------------
    20180101 | 20180103  | 3
    ----------------------------
    20180101 | 20180104  | 2
    ----------------------------
Final answer I need is :

    ----------------------------
    date1      |    qty
     ----------------------------
    20180101   |    56
    ----------------------------

Logic: For date1 cal 20180101   
= max(20180101 i.e date2) + sum ( all other date2)   
= max(50,15) + sum(1,3,2) 
= 56

**Will the lag / lead work here, can anyone help me with a hint of the 
solution? 

Thanks in advance.** 

1 Ответ

0 голосов
/ 29 августа 2018

Вы можете попробовать следующий запрос и проверить

select
date1,
Sum(qty_new)
from
(select date1, date2, max(qty) qty_new from 
table group by date1, date2) a
group by date1
...