zoukankan      html  css  js  c++  java
  • hive同环比实现

    select
              a.date
            , a.measure
            , case
                        when b.measure  is null
                                  or b.measure=0
                                  then null
                                  else concat(
                        cast(
                          cast((if(a.measure is null, 0, a.measure)-if(b.measure is null,0,b.measure))*100/b.measure as decimal(10,2))
                         as string)
                      ,'%') end as ratio_column from test_table a left join test_table b on ( to_date(from_unixtime(unix_timestamp(concat(a.date,''),'yyyyMM'),'yyyy-MM-dd HH:mm:ss'))
                              = add_months(to_date(from_unixtime(unix_timestamp(concat(b.date,''),'yyyyMM'),'yyyy-MM-dd HH:mm:ss')),+1) and 1 = 1 )

    提醒:

      1.第一个join条件的'yyyyMM'可以根据字段date的具体格式改变,'yyyy-MM-dd HH:mm:ss'不需要改变

      2.该同环比没有任何分组和汇总,所以一旦date字段有重复值,很容易出现笛卡尔积,解决方案是确保join条件能够确定一条数据在表中的唯一性

  • 相关阅读:
    C# 自定义文件图标 双击启动 (修改注册表)
    C/S打包 客户端/windows程序 InstallShield
    WPF 依赖属性
    WPF 自定义Expander
    WPF DevExpress ChartControl用法
    WPF 水平进度条
    WPF 自定义CheckBox
    WPF 自定义ListBox
    WPF 绕圈进度条(一)
    1.为什么要用泛型
  • 原文地址:https://www.cnblogs.com/wanshiming/p/12290448.html
Copyright © 2011-2022 走看看