1. 程式人生 > 其它 >hive獲取近12個月資料

hive獲取近12個月資料

技術標籤:工作

樣式一:

SELECT DATE_FORMAT(CURRENT_DATE, 'Y-M') AS `month`,count(class_name)  from t3 
where  DATE_FORMAT(updatetime,'Y-M')=DATE_FORMAT(add_months((CURRENT_DATE),0),'Y-M')
UNION 
SELECT DATE_FORMAT(add_months((CURRENT_DATE),-1),'Y-M') AS `month`,count(class_name)  from t3 
where  DATE_FORMAT(updatetime,'Y-M')=DATE_FORMAT(add_months((CURRENT_DATE),-1),'Y-M')
UNION
SELECT DATE_FORMAT(add_months((CURRENT_DATE),-2),'Y-M') AS `month`,count(class_name)  from t3 
where  DATE_FORMAT(updatetime,'Y-M')=DATE_FORMAT(add_months((CURRENT_DATE),-2),'Y-M')
UNION
SELECT DATE_FORMAT(add_months((CURRENT_DATE),-3),'Y-M') AS `month`,count(class_name)  from t3 
where  DATE_FORMAT(updatetime,'Y-M')=DATE_FORMAT(add_months((CURRENT_DATE),-3),'Y-M')
UNION
SELECT DATE_FORMAT(add_months((CURRENT_DATE),-4),'Y-M') AS `month`,count(class_name)  from t3 
where  DATE_FORMAT(updatetime,'Y-M')=DATE_FORMAT(add_months((CURRENT_DATE),-4),'Y-M')
UNION
SELECT DATE_FORMAT(add_months((CURRENT_DATE),-5),'Y-M') AS `month`,count(class_name)  from t3 
where  DATE_FORMAT(updatetime,'Y-M')=DATE_FORMAT(add_months((CURRENT_DATE),-5),'Y-M')
UNION
SELECT DATE_FORMAT(add_months((CURRENT_DATE),-6),'Y-M') AS `month`,count(class_name)  from t3 
where  DATE_FORMAT(updatetime,'Y-M')=DATE_FORMAT(add_months((CURRENT_DATE),-6),'Y-M')
UNION
SELECT DATE_FORMAT(add_months((CURRENT_DATE),-7),'Y-M') AS `month`,count(class_name)  from t3 
where  DATE_FORMAT(updatetime,'Y-M')=DATE_FORMAT(add_months((CURRENT_DATE),-7),'Y-M')
UNION
SELECT DATE_FORMAT(add_months((CURRENT_DATE),-8),'Y-M') AS `month`,count(class_name)  from t3 
where  DATE_FORMAT(updatetime,'Y-M')=DATE_FORMAT(add_months((CURRENT_DATE),-8),'Y-M')
UNION
SELECT DATE_FORMAT(add_months((CURRENT_DATE),-9),'Y-M') AS `month`,count(class_name)  from t3 
where  DATE_FORMAT(updatetime,'Y-M')=DATE_FORMAT(add_months((CURRENT_DATE),-9),'Y-M')
UNION
SELECT DATE_FORMAT(add_months((CURRENT_DATE),-10),'Y-M') AS `month`,count(class_name)  from t3 
where  DATE_FORMAT(updatetime,'Y-M')=DATE_FORMAT(add_months((CURRENT_DATE),-10),'Y-M')
UNION
SELECT DATE_FORMAT(add_months((CURRENT_DATE),-11),'Y-M') AS `month`,count(class_name)  from t3 
where  DATE_FORMAT(updatetime,'Y-M')=DATE_FORMAT(add_months((CURRENT_DATE),-11),'Y-M')

樣式二:

可以查到每個月的資料,但是月份無序,有月份資料為空時無法顯示。

select
month,
ct
from
(select 
DATE_FORMAT(t.first_time,'Y-M') as month,
count(distinct ip) as ct
from mat t
where   DATE_FORMAT(t.first_time,'Y-M')>DATE_FORMAT(add_months((CURRENT_DATE), -12),'Y-m')
group by DATE_FORMAT(t.first_time,'Y-M')
)a
;