hive獲取近12個月資料
阿新 • • 發佈:2021-01-16
技術標籤:工作
樣式一:
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
;