From 4f879df01e855d436c65e1fbdc74f64ce47c901b Mon Sep 17 00:00:00 2001
From: ZhuDongming <773644075@qq.com>
Date: Thu, 30 Apr 2020 16:49:15 +0800
Subject: [PATCH] update小时查询表时判断
---
src/main/resources/mapper/HistoryMapper.xml | 63 ++++++++++++++++---------------
1 files changed, 33 insertions(+), 30 deletions(-)
diff --git a/src/main/resources/mapper/HistoryMapper.xml b/src/main/resources/mapper/HistoryMapper.xml
index dba7c1e..4bfc446 100644
--- a/src/main/resources/mapper/HistoryMapper.xml
+++ b/src/main/resources/mapper/HistoryMapper.xml
@@ -175,7 +175,9 @@
SELECT
DATE_FORMAT(time,'%Y-%m-%d %H:%i') time,
<foreach collection="sensorKeys" separator="," item="sensorKey">
- AVG(h.value ->'$.${sensorKey}') AS '${sensorKey}'
+ AVG(h.value ->'$.${sensorKey}') AS '${sensorKey}',
+ MIN(cast(h.value ->'$.${sensorKey}' as decimal(11,5))) AS 'min${sensorKey}',
+ MAX(cast(h.value ->'$.${sensorKey}' as decimal(11,5))) AS 'max${sensorKey}'
</foreach>
FROM
history h
@@ -190,47 +192,48 @@
DATE_FORMAT(time,'%Y-%m-%d %H:%i')
ORDER BY
time
+ </select>
+
+ <select id="getAVGSensorRankByMonitorPointIdList" resultType="java.util.Map">
+ SELECT mp.name, AVG(JSON_EXTRACT(h.value,'$.${sensor}[0]')) sensor
+ FROM device d, history h, monitor_point mp
+ WHERE d.mac=h.mac
+ And mp.id=d.monitor_point_id
+ AND d.monitor_point_id IN
+ <foreach collection="monitorPointIdList" index="index" item="monitorPointId" open="(" separator="," close=")">
+ #{monitorPointId}
+ </foreach>
+ AND h.time BETWEEN #{before5Time} AND #{endTime}
+ GROUP BY d.monitor_point_id
+ ORDER BY AVG(JSON_EXTRACT(h.value,'$.${sensor}[0]')) DESC
+ </select>
+
+ <select id="getMonitorPointAVGValueByMonitorPointIdAndTimeslot" resultType="java.util.Map">
+ SELECT AVG(JSON_EXTRACT(value,'$.e1[0]')) e1,AVG(JSON_EXTRACT(value,'$.e2[0]')) e2,AVG(JSON_EXTRACT(value,'$.e10[0]')) e10,AVG(JSON_EXTRACT(value,'$.e11[0]')) e11,AVG(JSON_EXTRACT(value,'$.e16[0]')) e16,AVG(JSON_EXTRACT(value,'$.e15[0]')) e15
+ FROM device d,history h
+ WHERE d.monitor_point_id = #{monitor_point_id}
+ AND d.mac = h.mac
+ AND h.time BETWEEN #{starttime} AND #{endtime}
</select>
- <select id="getSensorDataTodayMin" resultType="java.util.LinkedHashMap">
+ <!-- ���������sensor������ -->
+ <select id="getCarSensorData" resultType="java.util.LinkedHashMap">
SELECT
- DATE_FORMAT(time,'%Y-%m-%d %H:%i') time,
- <foreach collection="sensorKeys" separator="," item="sensorKey">
- MIN(h.value ->'$.${sensorKey}') AS '${sensorKey}'
+ DATE_FORMAT(h.time,'%Y-%m-%d %H:%i:%s') time,
+ <foreach collection="sensorKeys" item="sensorKey" separator=",">
+ h.value->'$.${sensorKey}' as '${sensorKey}'
</foreach>
FROM
- history h
+ history_special as h
<where>
<if test="mac!=null">
and h.mac=#{mac}
</if>
and h.time >= #{startTime}
- and h.time <![CDATA[<=]]> #{endTime}
+ and h.time <![CDATA[<]]> #{endTime}
</where>
- GROUP BY
- DATE_FORMAT(time,'%Y-%m-%d %H:%i')
ORDER BY
- time
+ h.time
</select>
- <select id="getSensorDataTodayMax" resultType="java.util.LinkedHashMap">
- SELECT
- DATE_FORMAT(time,'%Y-%m-%d %H:%i') time,
- <foreach collection="sensorKeys" separator="," item="sensorKey">
- MAX(h.value ->'$.${sensorKey}') AS '${sensorKey}'
- </foreach>
- FROM
- history h
- <where>
- <if test="mac!=null">
- and h.mac=#{mac}
- </if>
- and h.time >= #{startTime}
- and h.time <![CDATA[<=]]> #{endTime}
- </where>
- GROUP BY
- DATE_FORMAT(time,'%Y-%m-%d %H:%i')
- ORDER BY
- time
- </select>
</mapper>
\ No newline at end of file
--
Gitblit v1.8.0