2024-07-08 17:47:02 +08:00
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace= "com.gunshi.project.xyt.mapper.StPptnRMapper" >
2024-07-22 17:53:58 +08:00
<select id= "getStcdLastPptnData" resultType= "com.gunshi.project.xyt.model.StPptnR" >
SELECT stb.stcd,
2024-09-23 13:52:16 +08:00
r.tm stm,
stb.source,
stb.sttp
2024-07-22 17:53:58 +08:00
FROM public.st_stbprp_b stb
LEFT JOIN (SELECT *
FROM (SELECT *, ROW_NUMBER() OVER ( PARTITION BY stcd ORDER BY tm DESC ) AS rn FROM public.st_pptn_r) subquery
WHERE subquery.rn = 1) r ON stb.stcd = r.stcd
2024-09-23 13:52:16 +08:00
WHERE stb.source in ('QX', 'SW', 'SH')
2024-07-22 17:53:58 +08:00
</select>
2024-08-05 14:03:32 +08:00
2024-10-16 17:35:36 +08:00
<select id= "getStcdFirstPptnData" resultType= "com.gunshi.project.xyt.model.StPptnR" >
SELECT stb.stcd,
r.tm etm,
stb.source,
stb.sttp
FROM public.st_stbprp_b stb
LEFT JOIN (SELECT *
FROM (SELECT *, ROW_NUMBER() OVER ( PARTITION BY stcd ORDER BY tm ASC ) AS rn FROM public.st_pptn_r) subquery
WHERE subquery.rn = 1) r ON stb.stcd = r.stcd
WHERE stb.source in ('QX', 'SW', 'SH')
</select>
2024-08-05 14:03:32 +08:00
<select id= "getPptnRDataList" resultType= "java.util.Map" >
2024-09-29 16:45:40 +08:00
SELECT to_char(tm_start, 'YYYY-MM-DD') tm,
drp
FROM (SELECT date_trunc('day', tm :: TIMESTAMP - INTERVAL '8 hours' - INTERVAL '1 second') + INTERVAL '8 hours' AS tm_start, SUM ( drp ) AS drp
FROM
st_pptn_r
WHERE
stcd = #{stcd}
AND tm >= #{tm}
GROUP BY
date_trunc( 'day', tm :: TIMESTAMP - INTERVAL '8 hours' - INTERVAL '1 second') + INTERVAL '8 hours'
ORDER BY
tm_start ASC) t
</select>
<select id= "getPptnRDataListByTask" resultType= "java.util.Map" >
SELECT to_char(tm_start, 'YYYY-MM-DD') tm,
drp
FROM (SELECT date_trunc('day', tm :: TIMESTAMP - INTERVAL '8 hours' - INTERVAL '1 second') + INTERVAL '8 hours' AS tm_start, SUM ( drp ) AS drp
FROM
(SELECT tm, ROUND(AVG (drp), 1) drp FROM st_pptn_r WHERE tm >= #{tm} AND stcd IN (SELECT stcd FROM st_stbprp_b WHERE res_code = #{resCode}) GROUP BY tm) a
GROUP BY
date_trunc( 'day', tm :: TIMESTAMP - INTERVAL '8 hours' - INTERVAL '1 second') + INTERVAL '8 hours'
ORDER BY
tm_start ASC) T
2024-08-05 14:03:32 +08:00
</select>
2024-07-08 17:47:02 +08:00
</mapper>