针对特定方案的Hive查询

时间:2015-11-02 21:17:27

标签: java sql hadoop mapreduce hive

假设我的数据如下:

enter image description here

输出应如下:

enter image description here

条件是:

  1. 如果cnsm_id包含Type_cd='P',那么我只需要那个元组
  2. 如果cnsm_id包含type_cd=Ptype_cd=A,则记录应为max(timestamp)
  3. 如果cnsm_id没有type_cd='P',那么它应该采用时间戳最大的type_cd='A'记录
  4. 谁知道答案可以帮助我解决这个问题?

1 个答案:

答案 0 :(得分: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;