2015-11-02 3 views
-2

Предположим, что мои данные, как показано ниже:Hive запрос для конкретного сценария

enter image description here

И выход должен быть, как показано ниже:

enter image description here

Эти условия:

  1. Если cnsm_id состоит из Type_cd='P', тогда мне нужен только этот кортеж
  2. Если cnsm_id имеет либо type_cd=P, либо type_cd=A, тогда запись должна быть max(timestamp).
  3. Если cnsm_id не имеет type_cd='P', то он должен взять на себя type_cd='A' записи с наибольшей отметкой временем

Пожалуйста, кто знает ответ может помочь мне в решении этого запроса?

+2

Вы сделали * что угодно, чтобы попытаться решить эту проблему самостоятельно? Stackoverflow не является службой написания кода. – gobrewers14

ответ

0
SELECT 
    CNSM_ID, 
    MAX(t), 
    TYPE_CD 
FROM(
SELECT 
    CNSM_ID, 
    MAX(TIMESTAMP) AS t, 
    type 
FROM 
    TBL_NAME 
GROUP BY 
    CNSM_ID, 
    TYPE_CD 
ORDER BY t DESC) AS TBL_NAME1 
GROUP BY CNSM_ID; 
Смежные вопросы