hivesql同环比
时间: 2023-11-11 16:07:40 浏览: 90
HivSQL中的同环比是指在一个时间序列中,对于某个时间点的数据,与其前一时间点的数据进行比较,即为环比;与其在同一时间点的前一年的数据进行比较,即为同比。下面是HivSQL中同环比的实现方法:\n\同比:\```\SELECT _month, _valu, tb__month, tb__valu, \ CASE WHEN tb__valu IS NULL THEN NULL \ ELSE ROUND((COALESCE(_valu,)-COALESCE(tb__valu,))/COALESCE(tb__valu,),2) \ END AS tb \FROM (\ SELECT 1._month AS _month, 1._ AS _, 1._valu AS _valu, \ 2._month AS tb__month, -- 同比月 \ 2._ AS tb__, -- 同比日 \ 2._valu AS tb__valu -- 同比值 \ FROM tmp2 1 \ LEFT JOIN tmp2 2 ON ADD_MONTHS(1._,-12)=2._ \) \WHERE _=ADD_MONTHS(DATE_ADD(CONCAT(_month,'-01'),-1),1) -- 剔除去年同期数据 \ OR _=DATE_ADD(CURRENT_DATE(),-1) -- 保留当前月不被剔除 \ORDER BY _month DESC \LIMIT 10;```\n\环比:\```\SELECT _month, _valu, hb__month, hb__valu, \ CASE WHEN hb__valu IS NULL THEN NULL \ ELSE ROUND((COALESCE(_valu,)-COALESCE(hb__valu,))/COALESCE(hb__valu,),2) \ END AS hb \FROM (\ SELECT 1._month AS _month, 1._ AS _, 1._valu AS _valu, \ 2._month AS hb__month, -- 环比月 \ 2._ AS hb__, -- 环比日 \ 2._valu AS hb__valu -- 环比值 \ FROM tmp2 1 \ LEFT JOIN tmp2 2 ON ADD_MONTHS(1._,-1)=2._ \) \WHERE _=ADD_MONTHS(DATE_ADD(CONCAT(_month,'-01'),-1),1) -- 剔除上月同期数据 \ OR _=DATE_ADD(CURRENT_DATE(),-1) -- 保留当前月不被剔除 \ORDER BY _month DESC \LIMIT 10;\```\n\
阅读全文