<?xml version="1.0" encoding="UTF-8"?>
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
<mapper namespace="com.moral.mapper.HistoryHourlyMapper">
|
<select id="getPollutionSourceData" resultType="java.util.Map">
|
SELECT
|
<foreach collection="sensorKeys" separator="," item="sensorKey">
|
json->'$.${sensorKey}[0]' AS '${sensorKey}'
|
</foreach>
|
FROM
|
history_hourly
|
<where>
|
<if test="mac!=null">
|
AND mac=#{mac}
|
</if>
|
<if test="time!=null">
|
AND time= DATE_SUB(#{time}, INTERVAL 1 HOUR)
|
</if>
|
</where>
|
</select>
|
|
<select id="getPollutionSourceDataByHour" resultType="java.util.Map">
|
SELECT
|
DATE_FORMAT(time,'%Y-%m-%d %H') time,
|
<foreach collection="sensorKeys" separator="," item="sensorKey">
|
AVG(h.value ->'$.${sensorKey}') AS '${sensorKey}'
|
</foreach>
|
FROM
|
history h
|
<where>
|
<if test="mac!=null">
|
and h.mac=#{mac}
|
</if>
|
</where>
|
GROUP BY
|
DATE_FORMAT(time,'%Y-%m-%d %H')
|
<if test="time!=null">
|
having time=DATE_FORMAT(DATE_SUB(#{time}, INTERVAL 1 HOUR),'%Y-%m-%d %H')
|
</if>
|
</select>
|
|
<select id="getPollutionSourceDataAll" resultType="java.util.Map">
|
SELECT
|
DATE_FORMAT(time,'%Y-%m-%d %H') time,
|
<foreach collection="sensorKeys" separator="," item="sensorKey">
|
AVG(h.value ->'$.${sensorKey}') AS '${sensorKey}'
|
</foreach>
|
FROM
|
history h
|
<where>
|
<if test="mac!=null">
|
and h.mac=#{mac}
|
</if>
|
</where>
|
GROUP BY
|
DATE_FORMAT(time,'%Y-%m-%d %H')
|
order by time desc
|
limit 0,1
|
</select>
|
</mapper>
|