56 lines
2.6 KiB
XML
56 lines
2.6 KiB
XML
<?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">
|
|
|
|
<select id="getStcdLastPptnData" resultType="com.gunshi.project.xyt.model.StPptnR">
|
|
SELECT stb.stcd,
|
|
r.tm stm,
|
|
stb.source,
|
|
stb.sttp
|
|
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
|
|
WHERE stb.source in ('QX', 'SW', 'SH')
|
|
</select>
|
|
|
|
<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>
|
|
|
|
<select id="getPptnRDataList" 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
|
|
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
|
|
</select>
|
|
</mapper>
|