| | |
| | | |
| | | <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> |