SELECT INFO_ID, DEVICE_ID, PH_NUM, PH_MAX, RECORD_TIME, CREATED_BY, CREATED_TIME, UPDATED_BY, UPDATED_TIME, REMARK
FROM (SELECT *, ROW_NUMBER() OVER (PARTITION BY DEVICE_ID,PH_NUM ORDER BY RECORD_TIME DESC) AS RN
FROM TWIN_PAN_HEAD_INFO) T
WHERE RN = 1 ORDER BY RECORD_TIME DESC
insert into twin_pan_head_info
DEVICE_ID,PH_NUM,PH_MAX,RECORD_TIME,CREATED_BY,CREATED_TIME,UPDATED_BY,UPDATED_TIME,REMARK,#{deviceId},#{phNum},#{phMax},#{recordTime},#{createdBy},#{createdTime},#{updatedBy},#{updatedTime},#{remark},
update twin_pan_head_info
DEVICE_ID = #{deviceId},PH_NUM = #{phNum},PH_MAX = #{phMax},RECORD_TIME = #{recordTime},CREATED_BY = #{createdBy},CREATED_TIME = #{createdTime},UPDATED_BY = #{updatedBy},UPDATED_TIME = #{updatedTime},REMARK = #{remark},
where INFO_ID = #{infoId}
delete
from twin_pan_head_info
where INFO_ID = #{infoId}
delete from twin_pan_head_info where INFO_ID in
#{infoId}