|  |  | 
 |  |  |  | 
 |  |  |     <select id="getHistoryFiveMinutelyData" resultType="java.util.LinkedHashMap"> | 
 |  |  |         SELECT | 
 |  |  |         mac | 
 |  |  |         <foreach collection="sensorKeys" open="," separator="," item="sensorKey"> | 
 |  |  |             <choose> | 
 |  |  |                 <when test="sensorKey=='e23[0]'"> | 
 |  |  |                     ROUND((CASE WHEN AVG(value->'$.e18[0]'*SIN((value->'$.e23[0]'/180)*PI()))<![CDATA[>]]>0 AND | 
 |  |  |                     AVG(value->'$.e18[0]'*COS((value->'$.e23[0]'/180)*PI()))<![CDATA[>]]>0 | 
 |  |  |                     THEN | 
 |  |  |                     ATAN(AVG(value->'$.e18[0]'*SIN((value->'$.e23[0]'/180)*PI()))/AVG(value->'$.e18[0]'*COS((value->'$.e23[0]'/180)*PI())))*180/PI() | 
 |  |  |                     WHEN AVG(value->'$.e18[0]'*SIN((value->'$.e23[0]'/180)*PI()))>0 AND | 
 |  |  |                     AVG(value->'$.e18[0]'*COS((value->'$.e23[0]'/180)*PI()))<![CDATA[<]]>0 | 
 |  |  |                     THEN | 
 |  |  |                     (ATAN(AVG(value->'$.e18[0]'*SIN((value->'$.e23[0]'/180)*PI()))/AVG(value->'$.e18[0]'*COS((value->'$.e23[0]'/180)*PI())))*180/PI())+180 | 
 |  |  |                     WHEN AVG(value->'$.e18[0]'*SIN((value->'$.e23[0]'/180)*PI()))<![CDATA[<]]>0 AND | 
 |  |  |                     AVG(value->'$.e18[0]'*COS((value->'$.e23[0]'/180)*PI()))<![CDATA[<]]>0 | 
 |  |  |                     THEN | 
 |  |  |                     (ATAN(AVG(value->'$.e18[0]'*SIN((value->'$.e23[0]'/180)*PI()))/AVG(value->'$.e18[0]'*COS((value->'$.e23[0]'/180)*PI())))*180/PI())+180 | 
 |  |  |                     ELSE | 
 |  |  |                     (ATAN(AVG(value->'$.e18[0]'*SIN((value->'$.e23[0]'/180)*PI()))/AVG(value->'$.e18[0]'*COS((value->'$.e23[0]'/180)*PI())))*180/PI())+360 | 
 |  |  |                     END),3) AS '${sensorKey}' | 
 |  |  |                 </when> | 
 |  |  |                 <otherwise> | 
 |  |  |                     ROUND(AVG(value->'$.${sensorKey}[0]'),3) AS '${sensorKey}' | 
 |  |  |                 </otherwise> | 
 |  |  |             </choose> | 
 |  |  |         </foreach> | 
 |  |  |         mac, value | 
 |  |  |         FROM | 
 |  |  |         history_minutely_${timeUnits} | 
 |  |  |         WHERE time <![CDATA[>=]]> #{start} AND time <![CDATA[<]]> #{end} | 
 |  |  |         GROUP BY mac | 
 |  |  |         WHERE time <![CDATA[>=]]> #{start} | 
 |  |  |         AND time <![CDATA[<]]> #{end} | 
 |  |  |     </select> | 
 |  |  |  | 
 |  |  | </mapper> |