mysql 분단위 평균 값 구해서 사용하기(mybatis)
같은 구조의 테이블이라면 다음과 같이 모아서 사용하기
<select id="get5minList" resultMap="resultMapAvg">
SELECT date_format(log_time, '%Y-%m-%d %H:%i:%s') as time
, truncate(avg(sensor_value),2) as sensor_value_avg, ${tableName}.*
FROM
${tableName}
<where>
<if test="startDate != null"> log_time >= #{startDate} </if>
<if test="endDate != null"> AND log_time <= #{endDate} </if>
</where>
GROUP BY ceil(date_format(log_time,'%i')/5)
LIMIT 30000
</select>
위에서 ceil(date_format(log_time,'%i')/5) 이렇게 사용하면 5분 동안에 센서 데이터 값의 avg를 구해서 사용할 수 있다.
<select id="get5minList" resultMap="resultMapAvg">
SELECT date_format(log_time, '%Y-%m-%d %H:%i:%s') as time
, truncate(avg(sensor_value),2) as sensor_value_avg, ${tableName}.*
FROM
${tableName}
<where>
<if test="startDate != null"> log_time >= #{startDate} </if>
<if test="endDate != null"> AND log_time <= #{endDate} </if>
</where>
GROUP BY ceil(date_format(log_time,'%i')/5)
LIMIT 30000
</select>
위에서 ceil(date_format(log_time,'%i')/5) 이렇게 사용하면 5분 동안에 센서 데이터 값의 avg를 구해서 사용할 수 있다.
댓글
댓글 쓰기