| | |
| | | <if test="dimension=='monitorPoint'">
|
| | | `name`,
|
| | | </if>
|
| | | <foreach collection="sensorKeys" item="sensorKey" separator=",">
|
| | | SUM( ${sensorKey} ) AS '${sensorKey}'
|
| | | </foreach>
|
| | | <foreach close=" AS 'sum' " collection="sensorKeys" item="sensorKey" open="," separator="+">
|
| | | SUM( ${sensorKey} )
|
| | | </foreach>
|
| | | <choose>
|
| | | <when test="sensorKeys.size > 0">
|
| | | <foreach collection="sensorKeys" separator="," item="sensorKey">
|
| | | SUM( ${sensorKey} ) AS '${sensorKey}'
|
| | | </foreach>
|
| | | <foreach collection="sensorKeys" open="," separator="+" close=" AS 'sum' " item="sensorKey">
|
| | | SUM( ${sensorKey} )
|
| | | </foreach>
|
| | | </when>
|
| | | <otherwise>
|
| | | time
|
| | | </otherwise>
|
| | | </choose>
|
| | | FROM
|
| | | (
|
| | | SELECT
|
| | | <if test="dimension=='monitorPoint'">
|
| | | mp.`name`,
|
| | | </if>
|
| | | <foreach collection="sensorKeys" item="sensorKey" separator=",">
|
| | | CASE COUNT( json -> '$.${sensorKey}' ) WHEN 0 THEN 0 ELSE 1 END AS '${sensorKey}'
|
| | | </foreach>
|
| | | <choose>
|
| | | <when test="sensorKeys.size > 0">
|
| | | <foreach collection="sensorKeys" separator="," item="sensorKey">
|
| | | CASE COUNT( json -> '$.${sensorKey}' ) WHEN 0 THEN 0 ELSE 1 END AS '${sensorKey}'
|
| | | </foreach>
|
| | | </when>
|
| | | <otherwise>
|
| | | h.time
|
| | | </otherwise>
|
| | | </choose>
|
| | | FROM
|
| | | alarm h, |
| | | alarm_daily h, |
| | | device d,
|
| | | monitor_point mp
|
| | | WHERE d.monitor_point_id = mp.id
|
| | |
| | | <if test="monitorPointId != null">
|
| | | AND mp.id = #{monitorPointId}
|
| | | </if>
|
| | | <if test="organizationId != null">
|
| | | AND mp.organization_id = #{organizationId}
|
| | | </if>
|
| | | <if test="mac != null">
|
| | | AND d.mac = #{mac}
|
| | | </if>
|
| | | <if test="level != null">
|
| | | AND h.state = #{level}
|
| | | </if>
|
| | | GROUP BY
|
| | | <if test="dimension=='monitorPoint'">
|
| | | mp.id,
|
| | | </if>
|
| | | DATE_FORMAT( h.time, '%Y-%m-%d' )
|
| | | h.time
|
| | | ) a
|
| | | <if test="dimension=='monitorPoint'">
|
| | | GROUP BY name
|