不会写代码的呆呆
2021-09-06 14:28
采纳率: 66.7%
浏览 78

hivesql 查询最近七天 最近三十天,昨天各个原因的占比

hivesql 查询最近七天 最近三十天,昨天各个原因的占比
l_date 日期字段,vc 原因字段 ,base表字段
麻烦小哥哥写详细点

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • IT_心如止水 2021-09-06 16:49
    已采纳

    上面的sql是错的。只是做了个排序,没有进行指标的计算,而且这个根本没必要用开窗函数。
    下面的sql应该是你想要的结果

    SELECT tag, vc
        , num / sum(pv_total) OVER () AS rate
    FROM (
        SELECT '最近7天' AS tag, vc, count(1) AS num
        FROM base
        WHERE to_date(l_date, 'yyyy-mm-dd') > to_date(sysdate - 7, 'yyyy-mm-dd')
        GROUP BY vc
    ) a
    UNION ALL
    SELECT tag, vc
        , num / sum(pv_total) OVER () AS rate
    FROM (
        SELECT '最近30天' AS tag, vc, count(1) AS num
        FROM base
        WHERE to_date(l_date, 'yyyy-mm-dd') > to_date(sysdate - 30, 'yyyy-mm-dd')
        GROUP BY vc
    ) a
    UNION ALL
    SELECT tag, vc
        , num / sum(pv_total) OVER () AS rate
    FROM (
        SELECT '昨天' AS tag, vc, count(1) AS num
        FROM base
        WHERE to_date(l_date, 'yyyy-mm-dd') > to_date(sysdate - 1, 'yyyy-mm-dd')
        GROUP BY vc
    ) a
    
    
    评论
    解决 无用
    打赏 举报
查看更多回答(2条)

相关推荐 更多相似问题