lizijie
2019-08-08 a6ff89dd8eed9ea4e6162ff5491d4583e4ef621a
src/main/resources/mapper/HistoryMapper.xml
@@ -139,4 +139,34 @@
         time DESC 
      LIMIT #{size}
   </select>
   <select id="getActualDataByRegion" resultType="java.util.Map">
      SELECT
      <foreach collection="sensorKeys" separator="," item="sensorKey">
         MAX( `value` ->> '$.${sensorKey}' ) * 1 AS '${sensorKey}'
      </foreach>
      FROM
         history h ,
         device d,
         monitor_point mp
      <where>
         h.mac = d.mac
         AND d.monitor_point_id = mp.id
      <if test="orgIds != null and orgIds.size &gt; 0">
         AND mp.organization_id IN
         <foreach  collection="orgIds" open="(" separator="," close=")" item="listItem">
            #{listItem}
         </foreach>
      </if>
         AND h.time >= #{start}
         AND h.time &lt; #{end}
      </where>
   </select>
   <select id="getAVGValueByMacAndTimeslot" 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 history
      WHERE mac = #{mac}
      AND time BETWEEN #{starttime} AND #{endtime}
   </select>
</mapper>