/*
|
1、根据过去24小时的书,生成国控点天数据
|
pro_stat_guokong_data_day 国控点数据统计
|
call pro_stat_guokong_data_day('2021-10-09 23:00:00');
|
call pro_stat_guokong_data_day('2021-10-09 03:00:00');
|
|
select * from t_d_guokong_hour;
|
select * from t_d_guokong_day;
|
|
delete from t_d_guokong_day;
|
|
create table t_d_guokong_day as select * from t_d_guokong_hour where 1<>1;
|
|
*/
|
-- -------------------------------------
|
|
DELIMITER //
|
DROP PROCEDURE IF EXISTS `pro_stat_guokong_data_day`;
|
CREATE PROCEDURE `pro_stat_guokong_data_day`(in time_start varchar(40))
|
BEGIN
|
|
-- 1、找到每辆taxi 每分钟的最后位置,插入t_d_taxi_position表; 不做
|
-- 2、生成 gid_100 if gid_100 is null;
|
-- 3、判断是否满足小时统计条件,统计各类hour数据;
|
-- 4、判断是否满足天统计条件,统计各类day数据;
|
|
declare PostTime_ datetime ;
|
DECLARE hour_start_ datetime DEFAULT DATE_SUB(now(),INTERVAL 1 HOUR);
|
DECLARE hour_end_ datetime DEFAULT now();
|
DECLARE day_start_ datetime DEFAULT now();
|
DECLARE day_end_ datetime DEFAULT now();
|
DECLARE has_data_ int DEFAULT 0;
|
DECLARE has_day_data_ int DEFAULT 0;
|
|
set hour_start_ = time_start;
|
|
set hour_start_ = concat(date(hour_start_),' ',LPAD(HOUR(hour_start_),2,0),':00:00');
|
set hour_end_ = DATE_ADD(hour_start_,INTERVAL 1 HOUR);
|
set day_end_ = concat(date(hour_start_),' 00:00:00');
|
set day_start_ = DATE_SUB(day_end_,INTERVAL 24 HOUR);
|
|
select 1 into has_day_data_ from t_d_guokong_day where date(TimePoint)=date(day_start_) limit 1;
|
|
#select hour_start_,hour_end_,day_start_,day_end_,has_data_,has_day_data_ ;
|
|
# 每日3点 统计前一天的国控点数据
|
IF has_day_data_=0 and hour(time_start)>=3 THEN
|
insert into t_d_guokong_day (SiteID,TimePoint,Area,PositionName,Latitude,Longitude,
|
PM25,PM10,CO,NO2,SO2,O31,O38,PValue,Quality)
|
select d.SiteID,day_start_,d.Area,d.PositionName,d.Latitude,d.Longitude,
|
round(avg(PM25),0) as PM25,round(AVG(PM10),0) as PM10,round(avg(CO),2) as CO,round(avg(NO2),2) as NO2,
|
round(avg(SO2),0) as SO2,round(avg(O31),0) as O31,round(avg(O38),0) as O38,
|
round(avg(PValue),0) as PValue,
|
case when round(avg(AQI),0)<=50 then '优'
|
when round(avg(AQI),0)<=100 and round(avg(AQI),0)>50 then '良'
|
when round(avg(AQI),0)<=150 and round(avg(AQI),0)>100 then '轻度污染'
|
when round(avg(AQI),0)<=200 and round(avg(AQI),0)>150 then '中度污染'
|
when round(avg(AQI),0)<=300 and round(avg(AQI),0)>200 then '重度污染'
|
when round(avg(AQI),0)>300 then '严重污染' end as Quality
|
from t_d_guokong_hour d
|
where date(TimePoint)=date(day_start_) #date(TimePoint)=date('2021-09-08 00:00:00')
|
group by d.SiteID,day_start_,d.Area,d.PositionName,d.Latitude,d.Longitude;
|
|
|
END IF;
|
|
|
END
|
//
|
DELIMITER ;
|
|
|
|
|