|
@@ -0,0 +1,778 @@
|
|
|
+<?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.utic.dwdb.server.dao.mapper.DwdbJobPrcs05MMapper">
|
|
|
+
|
|
|
+ <delete id="truncateStatLocal">
|
|
|
+ TRUNCATE TABLE STAT_LOCAL
|
|
|
+ </delete>
|
|
|
+
|
|
|
+ <insert id="insertStatLocal12Loc" parameterType="java.lang.String">
|
|
|
+ INSERT INTO STAT_LOCAL(LOCAL_DATE, CENTER_ID, LINKID, REV_TYPE, SPEED)
|
|
|
+ SELECT REG_DATE, b.Center_ID, LINK_ID, 'L', AVG(SPEED)
|
|
|
+ FROM CURLINKST a, CENTER b
|
|
|
+ WHERE REG_DATE <![CDATA[ > ]]> #{past30Min}
|
|
|
+ AND REG_DATE <![CDATA[ <= ]]> #{past25Min}
|
|
|
+ AND a.CenterId = B.ASN_CENTER_ID
|
|
|
+ GROUP BY b.Center_ID, REG_DATE, LINK_ID
|
|
|
+ </insert>
|
|
|
+
|
|
|
+ <insert id="insertStatLocalCapital" parameterType="java.lang.String">
|
|
|
+ INSERT INTO STAT_LOCAL(LOCAL_DATE, CENTER_ID, LINKID, REV_TYPE, SPEED)
|
|
|
+ SELECT TO_CHAR(REGDATE, 'YYYYMMDDHH24MISS'), FromCenterID, LinkNumber, 'U', SpeedRate
|
|
|
+ FROM RCV_LINK_TRAFFIC
|
|
|
+ WHERE REGDATE <![CDATA[ > ]]> TO_DATE(#{past30Min}, 'YYYYMMDDHH24MISS')
|
|
|
+ AND REGDATE <![CDATA[ <= ]]> TO_DATE(#{past25Min}, 'YYYYMMDDHH24MISS')
|
|
|
+ </insert>
|
|
|
+
|
|
|
+ <insert id="insertStatLocalTotal" parameterType="java.lang.String">
|
|
|
+ INSERT INTO STAT_LOCAL(LOCAL_DATE, CENTER_ID, LINKID, REV_TYPE, SPEED)
|
|
|
+ SELECT REG_DATE, 'L00', STD_LINK_ID, 'S', SPEED
|
|
|
+ FROM CURLINKST_MOCT_LOG
|
|
|
+ WHERE <![CDATA[ > ]]> #{past30Min}
|
|
|
+ AND <![CDATA[ <= ]]> #{past25Min}
|
|
|
+ </insert>
|
|
|
+
|
|
|
+
|
|
|
+ <delete id="truncateLinkFilter">
|
|
|
+ TRUNCATE TABLE LINK_FILTER
|
|
|
+ </delete>
|
|
|
+
|
|
|
+ <insert id="insertLinkFilter" parameterType="java.lang.String">
|
|
|
+ INSERT INTO LINK_FILTER(LINKID, MAK_DATE, AVG_SPEED, DATA_CNT,
|
|
|
+ STDV, STDV_HSPEED, STDV_LSPEED)
|
|
|
+ SELECT LINKID, #{past25Min}, AVGSPEED, DATACNT, STDSPEED,
|
|
|
+ DECODE(#{codeValue0}, 'Y', AVGSPEED + STDSPEED * TO_NUMBER(#{codeValue5}), 200),
|
|
|
+ DECODE(#{codeValue0}, 'Y', AVGSPEED - STDSPEED * TO_NUMBER(#{codeValue5}), 0)
|
|
|
+ FROM (
|
|
|
+ SELECT LINKID AS LINKID,
|
|
|
+ COUNT(1) AS DATACNT,
|
|
|
+ AVG(SPEED) AS AVGSPEED,
|
|
|
+ STDDEV(SPEED) AS STDSPEED
|
|
|
+ FROM STAT_LOCAL
|
|
|
+ WHERE LOCAL_DATE IS NOT NULL
|
|
|
+ GROUP BY LINKID
|
|
|
+ ) a
|
|
|
+ </insert>
|
|
|
+
|
|
|
+ <select id="findHoliday" parameterType="java.lang.String" resultType="com.utic.dwdb.server.dto.HolidayDto">
|
|
|
+ SELECT SUM(WDAY) AS wDay, SUM(HCNT) AS hCnt
|
|
|
+ FROM (
|
|
|
+ SELECT TO_NUMBER(TO_CHAR(TO_DATE(#{past25Min}, 'YYYYMMDDHH24MISS'), 'D')) AS WDAY,
|
|
|
+ 0 AS HCNT
|
|
|
+ FROM DUAL
|
|
|
+ UNION ALL
|
|
|
+ SELECT 0 AS WDAY,
|
|
|
+ COUNT(1) AS HCNT
|
|
|
+ FROM HOLIDAY
|
|
|
+ WHERE HOLIDAY = SUBSTR(#{past25Min}, 1, 8)
|
|
|
+ )
|
|
|
+ </select>
|
|
|
+
|
|
|
+ <update id="updateLinkFilterPattern" parameterType="java.lang.String">
|
|
|
+ UPDATE LINK_FILTER a
|
|
|
+ SET (STAT_HSPEED, STAT_LSPEED) =
|
|
|
+ (
|
|
|
+ SELECT SPEED + ${maxValue}, SPEED - ${minValue}
|
|
|
+ FROM ${fromTable}
|
|
|
+ WHERE PATN_TIME = SUBSTR(#{past25Min}, 9, 4)
|
|
|
+ AND a.LINKID = LINKID
|
|
|
+ )
|
|
|
+ </update>
|
|
|
+
|
|
|
+ <update id="updateLinkFilterNull">
|
|
|
+ UPDATE LINK_FILTER a
|
|
|
+ SET STAT_HSPEED = 999,
|
|
|
+ STAT_LSPEED = 0
|
|
|
+ WHERE STAT_HSPEED IS NULL
|
|
|
+ </update>
|
|
|
+
|
|
|
+ <update id="updateLinkFilterRoadRank">
|
|
|
+ UPDATE LINK_FILTER a
|
|
|
+ SET (ROADRANK, LINKLEVEL) =
|
|
|
+ (
|
|
|
+ SELECT ROADRANK, LINKLEVEL
|
|
|
+ FROM LINK
|
|
|
+ WHERE LinkID = a.LinkID
|
|
|
+ )
|
|
|
+ </update>
|
|
|
+
|
|
|
+ <update id="updateLinkFilterMinMax" parameterType="java.lang.Integer">
|
|
|
+ UPDATE LINK_FILTER a
|
|
|
+ SET GRAD_HSPEED = DECODE(ROADRANK, '101', #{maxValue6, jdbcType=NUMERIC},
|
|
|
+ '102', #{maxValue7, jdbcType=NUMERIC},
|
|
|
+ '103', #{maxValue8, jdbcType=NUMERIC},
|
|
|
+ #{maxValue9, jdbcType=NUMERIC}
|
|
|
+ ),
|
|
|
+ GRAD_LSPEED = DECODE(ROADRANK, '101', #{minValue6, jdbcType=NUMERIC},
|
|
|
+ '102', #{minValue7, jdbcType=NUMERIC},
|
|
|
+ '103', #{minValue8, jdbcType=NUMERIC},
|
|
|
+ #{minValue9, jdbcType=NUMERIC}
|
|
|
+ )
|
|
|
+ WHERE ROADRANK Is Not NULL
|
|
|
+ </update>
|
|
|
+
|
|
|
+ <insert id="insertStatLocalLog">
|
|
|
+ INSERT INTO STAT_LOCAL_LOG(LOCAL_DATE, CENTER_ID, LINKID, REV_TYPE, SPEED)
|
|
|
+ SELECT LOCAL_DATE, CENTER_ID, LINKID, REV_TYPE, SPEED
|
|
|
+ FROM STAT_LOCAL
|
|
|
+ </insert>
|
|
|
+
|
|
|
+
|
|
|
+ <select id="findLinkFilterMakeDate" resultType="java.lang.String">
|
|
|
+ SELECT MAK_DATE AS makeDate
|
|
|
+ FROM LINK_FILTER
|
|
|
+ WHERE ROWNUM = 1
|
|
|
+ </select>
|
|
|
+
|
|
|
+ <insert id="insertCenterLog" parameterType="java.lang.String">
|
|
|
+ INSERT INTO CENTER_LOG(EXE_DATE, CENTER_ID, LOG_DATE, DATA_CNT)
|
|
|
+ SELECT #{regDate}, CENTER_ID, SYSDATE, COUNT(1)
|
|
|
+ FROM (SELECT A.LINKID, C.CENTER_ID
|
|
|
+ FROM (SELECT DISTINCT LINKID AS LINKID
|
|
|
+ FROM STAT_LOCAL) A,
|
|
|
+ LINK B,
|
|
|
+ LOCAL_AREA C
|
|
|
+ WHERE B.LINKLEVEL = '1'
|
|
|
+ AND A.LINKID = B.LINKID
|
|
|
+ AND C.CENTER_ID IS NOT NULL
|
|
|
+ AND SUBSTR(A.LINKID, 1, 3) = C.SLOCAL_ID
|
|
|
+ )
|
|
|
+ GROUP BY CENTER_ID
|
|
|
+ </insert>
|
|
|
+
|
|
|
+ <insert id="insertUtisLog" parameterType="java.lang.String">
|
|
|
+ INSERT INTO UTIS_LOG(EXE_DATE, CENTER_ID, LOG_DATE, DATA_CNT)
|
|
|
+ SELECT /*+ INDEX(A PK_TRAFF5M_HIST) */
|
|
|
+ #{regDate},
|
|
|
+ A.CENTERID, SYSDATE, COUNT(1)
|
|
|
+ FROM TRAFFIC5M_HIST A, LINK B
|
|
|
+ WHERE A.REGDT BETWEEN TO_DATE(#{regDate}, 'YYYYMMDDHH24MISS') - 299/86400
|
|
|
+ AND TO_DATE(#{regDate}, 'YYYYMMDDHH24MISS')
|
|
|
+ AND B.LINKLEVEL = '1'
|
|
|
+ AND A.LINKID = B.LINKID
|
|
|
+ GROUP BY A.CENTERID
|
|
|
+ </insert>
|
|
|
+
|
|
|
+ <insert id="insertStatTrafficLog" parameterType="java.lang.String">
|
|
|
+ INSERT INTO STAT_TRAFFIC_LOG(EXE_DATE, CENTER_ID, MISSVALUEYN, LANES, DATA_CNT)
|
|
|
+ SELECT SUBSTR(#{regDate}, 1, 12), C.CENTER_ID, A.MISSVALUEYN, DECODE(B.LANES, 1, 1, 2), COUNT(1)
|
|
|
+ FROM TRAFFIC_CENTER_HIST A, LINK B, LOCAL_AREA C
|
|
|
+ WHERE B.LINKLEVEL = '1'
|
|
|
+ AND A.REGDATE = TO_DATE(#{regDate}, 'YYYYMMDDHH24MISS')
|
|
|
+ AND A.LINKID = B.LINKID
|
|
|
+ AND SUBSTR(A.LINKID, 1, 3) = C.SLOCAL_ID
|
|
|
+ AND C.CENTER_ID IS NOT NULL
|
|
|
+ GROUP BY C.CENTER_ID, A.MISSVALUEYN, DECODE(B.LANES, 1, 1, 2)
|
|
|
+ </insert>
|
|
|
+
|
|
|
+ <insert id="insertFilterLog" parameterType="java.lang.String">
|
|
|
+ INSERT INTO FILTER_LOG(EXE_DATE, CENTER_ID, LOG_DATE, LINK_FILTER_CNT, LINKLEVEL_FILTER_CNT, ZERO_CNT,
|
|
|
+ STD_YN, STD_CNT, STA_YN, STA_CNT, RGF_YN, RGF_CNT, RGF_USE_YN)
|
|
|
+ SELECT #{regDate}, CENTER_ID, SYSDATE,
|
|
|
+ SUM(CNT_LINK), SUM(LEVEL_CNT), SUM(ZERO_CNT),
|
|
|
+ #{codeValue0}, DECODE(#{codeValue0}, 'Y', SUM(CNT_STD), 0),
|
|
|
+ #{codeValue1}, DECODE(#{codeValue1}, 'Y', SUM(CNT_STAT),0),
|
|
|
+ #{codeValue2}, DECODE(#{codeValue2}, 'Y', SUM(CNT_MAX), 0),
|
|
|
+ #{codeValue3}
|
|
|
+ FROM (
|
|
|
+ SELECT a.CENTER_ID, COUNT(*) CNT_LINK, 0 CNT_STD, 0 CNT_STAT, 0 CNT_MAX, 0 LEVEL_CNT, 0 ZERO_CNT
|
|
|
+ FROM STAT_LOCAL a, LINK_FILTER b
|
|
|
+ WHERE a.LINKID = b.LINKID
|
|
|
+ AND b.ROADRANK IS NULL
|
|
|
+ GROUP BY a.CENTER_ID
|
|
|
+ UNION ALL
|
|
|
+ SELECT a.CENTER_ID, 0 CNT_LINK, COUNT(1) CNT_STD, 0 CNT_STAT, 0 CNT_MAX, 0 LEVEL_CNT, 0 ZERO_CN
|
|
|
+ FROM STAT_LOCAL a, LINK_FILTER b
|
|
|
+ WHERE a.LINKID = b.LINKID
|
|
|
+ AND (a.SPEED > B.STDV_HSPEED OR a.SPEED <![CDATA[ < ]]> B.STDV_LSPEED)
|
|
|
+ AND b.DATA_CNT <![CDATA[ >= ]]> TO_NUMBER(#{codeValue4})
|
|
|
+ GROUP BY a.CENTER_ID
|
|
|
+ UNION ALL
|
|
|
+ SELECT CENTER_ID, 0 CNT_LINK, 0 CNT_STD, 0 CNT_STAT, 0 CNT_MAX, 0 LEVEL_CNT, COUNT(1) ZERO_CNT
|
|
|
+ FROM STAT_LOCAL
|
|
|
+ WHERE SPEED = 0
|
|
|
+ GROUP BY CENTER_ID
|
|
|
+ UNION ALL
|
|
|
+ SELECT a.CENTER_ID, 0 CNT_LINK, 0 CNT_STD, COUNT(1) CNT_STAT, 0 CNT_MAX, 0 LEVEL_CNT, 0 ZERO_CN
|
|
|
+ FROM STAT_LOCAL a, LINK_FILTER b
|
|
|
+ WHERE a.LINKID = b.LINKID
|
|
|
+ AND (a.SPEED > B.STAT_HSPEED OR a.SPEED <![CDATA[ < ]]> B.STAT_LSPEED)
|
|
|
+ GROUP BY a.CENTER_ID
|
|
|
+ UNION ALL
|
|
|
+ SELECT a.CENTER_ID, 0 CNT_LINK, 0 CNT_STD, 0 CNT_STAT, COUNT(1) CNT_MAX, 0 LEVEL_CNT, 0 ZERO_CN
|
|
|
+ FROM STAT_LOCAL a, LINK_FILTER b
|
|
|
+ WHERE a.LINKID = b.LINKID
|
|
|
+ AND (a.SPEED > B.GRAD_HSPEED OR a.SPEED <![CDATA[ < ]]> B.GRAD_LSPEED)
|
|
|
+ GROUP BY a.CENTER_ID
|
|
|
+ UNION ALL
|
|
|
+ SELECT a.CENTER_ID, 0 CNT_LINK, 0 CNT_STD, 0 CNT_STAT, 0 CNT_MAX, COUNT(1) LEVEL_CNT, 0 ZERO_CN
|
|
|
+ FROM STAT_LOCAL a, LINK_FILTER b
|
|
|
+ WHERE a.LINKID = b.LINKID
|
|
|
+ AND b.LINKLEVEL IS NOT NULL
|
|
|
+ AND b.LINKLEVEL != '1'
|
|
|
+ GROUP BY a.CENTER_ID
|
|
|
+ )
|
|
|
+ GROUP BY CENTER_ID
|
|
|
+ </insert>
|
|
|
+
|
|
|
+ <insert id="insertLinkFilterLog" parameterType="java.lang.String">
|
|
|
+ INSERT INTO LINK_FILTER_LOG(LOCAL_DATE, CENTER_ID, LINKID, REV_TYPE, LINK_FILTER_YN, LINKLEVEL_FILTER_YN, ZERO_YN, STD_YN, STA_YN, RGF_YN)
|
|
|
+ SELECT LOCAL_DATE, CENTER_ID, LINKID, REV_TYPE,
|
|
|
+ DECODE(LINK_FILTER, 0, 'N', 'Y'), DECODE(LINKLEVEL_FILTER, 0, 'N', 'Y'), DECODE(ZERO, 0, 'N', 'Y'),
|
|
|
+ DECODE(STD, 0, 'N', 'Y'), DECODE(STA, 0, 'N', 'Y'), DECODE(RGF, 0, 'N', 'Y')
|
|
|
+ FROM (
|
|
|
+ SELECT CENTER_ID, LOCAL_DATE, LINKID, REV_TYPE,
|
|
|
+ SUM(LINK_FILTER) LINK_FILTER, SUM(LINKLEVEL_FILTER) LINKLEVEL_FILTER, SUM(ZERO) ZERO,
|
|
|
+ SUM(STD) STD, SUM(STA) STA, SUM(RGF) RGF
|
|
|
+ FROM (
|
|
|
+ SELECT a.CENTER_ID, a.LOCAL_DATE, a.LINKID, a.REV_TYPE, 1 LINK_FILTER, 0 LINKLEVEL_FILTER, 0 ZERO, 0 STD, 0 STA, 0 RGF
|
|
|
+ FROM STAT_LOCAL a, LINK_FILTER b
|
|
|
+ WHERE a.LINKID = b.LINKID
|
|
|
+ AND b.ROADRANK IS NULL
|
|
|
+ UNION ALL
|
|
|
+ SELECT a.CENTER_ID, a.LOCAL_DATE, a.LINKID, a.REV_TYPE, 0 LINK_FILTER, 0 LINKLEVEL_FILTER, 0 ZERO, 1 STD, 0 STA, 0 RGF
|
|
|
+ FROM STAT_LOCAL a, LINK_FILTER b
|
|
|
+ WHERE a.LINKID = b.LINKID
|
|
|
+ AND (a.SPEED > B.STDV_HSPEED OR a.SPEED <![CDATA[ < ]]> B.STDV_LSPEED)
|
|
|
+ AND b.DATA_CNT <![CDATA[ >= ]]> TO_NUMBER(#{codeValue4})
|
|
|
+ UNION ALL
|
|
|
+ SELECT a.CENTER_ID, a.LOCAL_DATE, a.LINKID, a.REV_TYPE, 0 LINK_FILTER, 0 LINKLEVEL_FILTER, 1 ZERO, 0 STD, 0 STA, 0 RGF
|
|
|
+ FROM STAT_LOCAL a
|
|
|
+ WHERE SPEED = 0
|
|
|
+ UNION ALL
|
|
|
+ SELECT a.CENTER_ID, a.LOCAL_DATE, a.LINKID, a.REV_TYPE, 0 LINK_FILTER, 0 LINKLEVEL_FILTER, 0 ZERO, 0 STD, 1 STA, 0 RGF
|
|
|
+ FROM STAT_LOCAL a, LINK_FILTER b
|
|
|
+ WHERE a.LINKID = b.LINKID
|
|
|
+ AND (a.SPEED > B.STAT_HSPEED OR a.SPEED <![CDATA[ < ]]> B.STAT_LSPEED)
|
|
|
+ UNION ALL
|
|
|
+ SELECT a.CENTER_ID, a.LOCAL_DATE, a.LINKID, a.REV_TYPE, 0 LINK_FILTER, 0 LINKLEVEL_FILTER, 0 ZERO, 0 STD, 0 STA, 1 RGF
|
|
|
+ FROM STAT_LOCAL a, LINK_FILTER b
|
|
|
+ WHERE a.LINKID = b.LINKID
|
|
|
+ AND (a.SPEED > B.GRAD_HSPEED OR a.SPEED <![CDATA[ < ]]> B.GRAD_LSPEED)
|
|
|
+ UNION ALL
|
|
|
+ SELECT a.CENTER_ID, a.LOCAL_DATE, a.LINKID, a.REV_TYPE, 0 LINK_FILTER, 1 LINKLEVEL_FILTER, 0 ZERO, 0 STD, 0 STA, 0 RGF
|
|
|
+ FROM STAT_LOCAL a, LINK_FILTER b
|
|
|
+ WHERE a.LINKID = b.LINKID
|
|
|
+ AND b.LINKLEVEL IS NOT NULL
|
|
|
+ AND b.LINKLEVEL != '1'
|
|
|
+ )
|
|
|
+ GROUP BY CENTER_ID, LOCAL_DATE, LINKID, REV_TYPE
|
|
|
+ )
|
|
|
+ </insert>
|
|
|
+
|
|
|
+ <insert id="insertStat5MinCenter" parameterType="java.lang.String">
|
|
|
+ INSERT INTO STAT_5MIN_CENTER(STAT_DATE,
|
|
|
+ LINKID, LINKLEVEL, DAY_TYPE, SPEED, DATA_CNT, TRAVEL_TIME)
|
|
|
+ SELECT a1.S_DATE, a1.LINKID, '1' LinkLEVEL,
|
|
|
+ a1.DAY_TYPE, a1.Speed, DataCnt,
|
|
|
+ ROUND(b1.LENGTH / ((a1.Speed * 1000)/3600)) TRAVEL_TIME
|
|
|
+ FROM (
|
|
|
+ SELECT SUBSTR(#{regDate}, 1, 12) S_Date,
|
|
|
+ a.LINKID,
|
|
|
+ TO_CHAR(TO_DATE(#{regDate}, 'YYYYMMDDHH24MISS'), 'D') DAY_TYPE,
|
|
|
+ AVG(SPEED) Speed,
|
|
|
+ COUNT(1) DataCnt
|
|
|
+ FROM STAT_LOCAL a, LINK_FILTER b
|
|
|
+ WHERE a.LINKID = b.LINKID
|
|
|
+ AND b.ROADRANK IS NOT NULL
|
|
|
+ AND b.LINKLEVEL = '1'
|
|
|
+ AND b.DATA_CNT <![CDATA[ >= ]]> TO_NUMBER(#{codeValue4})
|
|
|
+ AND a.SPEED <![CDATA[ <= ]]> B.STDV_HSPEED
|
|
|
+ AND a.SPEED <![CDATA[ >= ]]> B.STDV_LSPEED
|
|
|
+ AND a.SPEED <![CDATA[ <= ]]> B.STAT_HSPEED
|
|
|
+ AND a.SPEED <![CDATA[ >= ]]> B.STAT_LSPEED
|
|
|
+ AND a.SPEED <![CDATA[ <= ]]> B.GRAD_HSPEED
|
|
|
+ AND a.SPEED <![CDATA[ >= ]]> B.GRAD_LSPEED
|
|
|
+ AND a.SPEED <![CDATA[ > ]]> 0
|
|
|
+ GROUP BY a.LINKID
|
|
|
+ ) a1, LINK b1
|
|
|
+ WHERE a1.LINKID = b1.LINKID
|
|
|
+ UNION ALL
|
|
|
+ SELECT a1.S_DATE, a1.LINKID, '1' LinkLEVEL,
|
|
|
+ a1.DAY_TYPE, a1.Speed, DataCnt,
|
|
|
+ ROUND(b1.LENGTH / ((a1.Speed * 1000)/3600)) TRAVEL_TIME
|
|
|
+ FROM (
|
|
|
+ SELECT SUBSTR(#{regDate}, 1, 12) S_Date,
|
|
|
+ a.LINKID,
|
|
|
+ TO_CHAR(TO_DATE(#{regDate}, 'YYYYMMDDHH24MISS'), 'D') DAY_TYPE,
|
|
|
+ AVG(SPEED) Speed,
|
|
|
+ COUNT(1) DataCnt
|
|
|
+ FROM STAT_LOCAL a, LINK_FILTER b
|
|
|
+ WHERE a.LINKID = b.LINKID
|
|
|
+ AND b.ROADRANK IS NOT NULL
|
|
|
+ AND b.LINKLEVEL = '1'
|
|
|
+ AND b.DATA_CNT <![CDATA[ < ]]> TO_NUMBER(#{codeValue4})
|
|
|
+ AND a.SPEED <![CDATA[ <= ]]> B.STAT_HSPEED
|
|
|
+ AND a.SPEED <![CDATA[ >= ]]> B.STAT_LSPEED
|
|
|
+ AND a.SPEED <![CDATA[ <= ]]> B.GRAD_HSPEED
|
|
|
+ AND a.SPEED <![CDATA[ >= ]]> B.GRAD_LSPEED
|
|
|
+ AND a.SPEED <![CDATA[ > ]]> 0
|
|
|
+ GROUP BY a.LINKID
|
|
|
+ ) a1, LINK b1
|
|
|
+ WHERE a1.LINKID = b1.LINKID
|
|
|
+ </insert>
|
|
|
+
|
|
|
+ <insert id="insertStatFilterLog" parameterType="java.lang.String">
|
|
|
+ INSERT INTO STAT_FILTER_LOG(EXE_DATE, CENTER_ID, COLLECT_CNT, FILTER_CNT)
|
|
|
+ SELECT SUBSTR(#{regDate}, 1, 12) AS EXE_DATE, CENTER_ID, SUM(COLLECT_CNT) AS COLLECT_CNT, SUM(FILTER_CNT) AS FILTER_CNT
|
|
|
+ FROM (
|
|
|
+ SELECT CENTER_ID, COUNT(1) AS COLLECT_CNT, 0 AS FILTER_CNT
|
|
|
+ FROM (SELECT A.LINKID, C.CENTER_ID
|
|
|
+ FROM (SELECT DISTINCT LINKID AS LINKID FROM STAT_LOCAL) A, LINK B, LOCAL_AREA C
|
|
|
+ WHERE B.LINKLEVEL = '1'
|
|
|
+ AND A.LINKID = B.LINKID
|
|
|
+ AND C.CENTER_ID IS NOT NULL
|
|
|
+ AND SUBSTR(A.LINKID, 1, 3) = C.SLOCAL_ID
|
|
|
+ )
|
|
|
+ GROUP BY CENTER_ID
|
|
|
+ UNION ALL
|
|
|
+ SELECT C.CENTER_ID, 0 AS COLLECT_CNT, COUNT(1) AS FILTER_CNT
|
|
|
+ FROM STAT_5MIN_CENTER A, LINK B, LOCAL_AREA C
|
|
|
+ WHERE A.STAT_DATE = SUBSTR(#{regDate}, 1, 12)
|
|
|
+ AND A.LINKLEVEL = '1'
|
|
|
+ AND A.LINKID = B.LINKID
|
|
|
+ AND C.CENTER_ID IS NOT NULL
|
|
|
+ AND SUBSTR(A.LINKID, 1, 3) = C.SLOCAL_ID
|
|
|
+ GROUP BY C.CENTER_ID
|
|
|
+ )
|
|
|
+ GROUP BY CENTER_ID
|
|
|
+ </insert>
|
|
|
+
|
|
|
+ <insert id="insertStat5MinCenterLevel" parameterType="java.lang.String">
|
|
|
+ INSERT INTO STAT_5MIN_CENTER(STAT_DATE,
|
|
|
+ LINKID, LINKLEVEL, DAY_TYPE, SPEED, DATA_CNT)
|
|
|
+ SELECT SUBSTR(#{regDate}, 1, 12),
|
|
|
+ b1.LOGICALLINKID, #{linkLevel} LINKLEVEL,
|
|
|
+ TO_CHAR(TO_DATE(#{regDate}, 'YYYYMMDDHH24MISS'), 'D') DAY_TYPE,
|
|
|
+ ROUND(SUM(a1.LENGTH * a1.SPEED)/SUM(a1.LENGTH)) SPEED,
|
|
|
+ COUNT(*) DATA_CNT
|
|
|
+ FROM
|
|
|
+ (
|
|
|
+ SELECT A.LINKID, A.LENGTH, B.SPEED
|
|
|
+ FROM LINK A, STAT_5MIN_CENTER B
|
|
|
+ WHERE A.LINKID = B.LINKID
|
|
|
+ AND A.LINKLEVEL ='1'
|
|
|
+ AND STAT_DATE = SUBSTR(#{regDate}, 1, 12)
|
|
|
+ ) a1,
|
|
|
+ (
|
|
|
+ SELECT a.LOGICALLINKID, a.LINKID
|
|
|
+ FROM LOGICALLINK a,
|
|
|
+ (
|
|
|
+ SELECT LINKID
|
|
|
+ FROM LINK
|
|
|
+ WHERE LINKLEVEL = #{linkLevel}
|
|
|
+ ) B
|
|
|
+ WHERE a.LOGICALLINKID = b.LINKID
|
|
|
+ AND a.LINKLEVEL = '1'
|
|
|
+ ) b1
|
|
|
+ WHERE a1.LINKID = b1.LINKID
|
|
|
+ GROUP BY b1.LOGICALLINKID
|
|
|
+ </insert>
|
|
|
+
|
|
|
+ <update id="updateStat5MinCenter" parameterType="java.lang.String">
|
|
|
+ UPDATE STAT_5MIN_CENTER a
|
|
|
+ SET TRAVEL_TIME =
|
|
|
+ (
|
|
|
+ SELECT (b.LENGTH * 3.6)/a.SPEED
|
|
|
+ FROM LINK b
|
|
|
+ WHERE a.LinkID = b.LinkID
|
|
|
+ )
|
|
|
+ WHERE LINKLEVEL IN('2', '3', '4')
|
|
|
+ AND STAT_DATE = SUBSTR(#{regDate}, 1, 12)
|
|
|
+ </update>
|
|
|
+
|
|
|
+
|
|
|
+ <insert id="insertStat5Min12Loc" parameterType="java.lang.String">
|
|
|
+ INSERT INTO STAT_5MIN_12LOC(STAT_DATE,
|
|
|
+ LINKID, LINKLEVEL, DAY_TYPE, SPEED, DATA_CNT, TRAVEL_TIME)
|
|
|
+ SELECT a1.S_DATE, a1.LINKID, '1' LinkLEVEL,
|
|
|
+ a1.DAY_TYPE, a1.Speed, DataCnt,
|
|
|
+ ROUND(b1.LENGTH / ((a1.Speed * 1000)/3600)) TRAVEL_TIME
|
|
|
+ FROM (
|
|
|
+ SELECT SUBSTR(#{regDate}, 1, 12) S_Date,
|
|
|
+ a.LINKID,
|
|
|
+ TO_CHAR(TO_DATE(#{regDate}, 'YYYYMMDDHH24MISS'), 'D') DAY_TYPE,
|
|
|
+ AVG(SPEED) Speed,
|
|
|
+ COUNT(*) DataCnt
|
|
|
+ FROM STAT_LOCAL a, LINK_FILTER b
|
|
|
+ WHERE a.LINKID = b.LINKID
|
|
|
+ AND b.ROADRANK IS NOT NULL
|
|
|
+ AND b.LINKLEVEL = '1'
|
|
|
+ AND b.DATA_CNT <![CDATA[ >= ]]> TO_NUMBER(#{codeValue4})
|
|
|
+ AND a.SPEED <![CDATA[ <= ]]> B.STDV_HSPEED
|
|
|
+ AND a.SPEED <![CDATA[ >= ]]> B.STDV_LSPEED
|
|
|
+ AND a.SPEED <![CDATA[ <= ]]> B.STAT_HSPEED
|
|
|
+ AND a.SPEED <![CDATA[ >= ]]> B.STAT_LSPEED
|
|
|
+ AND a.SPEED <![CDATA[ <= ]]> B.GRAD_HSPEED
|
|
|
+ AND a.SPEED <![CDATA[ >= ]]> B.GRAD_LSPEED
|
|
|
+ AND a.REV_TYPE = 'L'
|
|
|
+ AND a.SPEED > 0
|
|
|
+ GROUP BY a.LINKID
|
|
|
+ ) a1, LINK b1
|
|
|
+ WHERE a1.LINKID = b1.LINKID
|
|
|
+ UNION ALL
|
|
|
+ SELECT a1.S_DATE, a1.LINKID, '1' LinkLEVEL,
|
|
|
+ a1.DAY_TYPE, a1.Speed, DataCnt,
|
|
|
+ ROUND(b1.LENGTH / ((a1.Speed * 1000)/3600)) TRAVEL_TIME
|
|
|
+ FROM (
|
|
|
+ SELECT SUBSTR(#{regDate}, 1, 12) S_Date,
|
|
|
+ a.LINKID,
|
|
|
+ TO_CHAR(TO_DATE(#{regDate}, 'YYYYMMDDHH24MISS'), 'D') DAY_TYPE,
|
|
|
+ AVG(SPEED) Speed,
|
|
|
+ COUNT(*) DataCnt
|
|
|
+ FROM STAT_LOCAL a, LINK_FILTER b
|
|
|
+ WHERE a.LINKID = b.LINKID
|
|
|
+ AND b.ROADRANK IS NOT NULL
|
|
|
+ AND b.LINKLEVEL = '1'
|
|
|
+ AND b.DATA_CNT <![CDATA[ < ]]> TO_NUMBER(#{codeValue4})
|
|
|
+ AND a.SPEED <![CDATA[ <= ]]> B.STAT_HSPEED
|
|
|
+ AND a.SPEED <![CDATA[ >= ]]> B.STAT_LSPEED
|
|
|
+ AND a.SPEED <![CDATA[ <= ]]> B.GRAD_HSPEED
|
|
|
+ AND a.SPEED <![CDATA[ >= ]]> B.GRAD_LSPEED
|
|
|
+ AND a.REV_TYPE = 'L'
|
|
|
+ AND a.SPEED > 0
|
|
|
+ GROUP BY a.LINKID
|
|
|
+ ) a1, LINK b1
|
|
|
+ WHERE a1.LINKID = b1.LINKID
|
|
|
+ </insert>
|
|
|
+
|
|
|
+
|
|
|
+ <insert id="insertStat5Min12LocLevel" parameterType="java.lang.String">
|
|
|
+ INSERT INTO STAT_5MIN_12LOC(STAT_DATE,
|
|
|
+ LINKID, LINKLEVEL, DAY_TYPE, SPEED, DATA_CNT)
|
|
|
+ SELECT SUBSTR(#{regDate}, 1, 12),
|
|
|
+ b1.LOGICALLINKID, #{linkLevel} LINKLEVEL,
|
|
|
+ TO_CHAR(TO_DATE(#{regDate}, 'YYYYMMDDHH24MISS'), 'D') DAY_TYPE,
|
|
|
+ ROUND(SUM(a1.LENGTH * a1.SPEED)/SUM(a1.LENGTH)) SPEED,
|
|
|
+ COUNT(*) DATA_CNT
|
|
|
+ FROM
|
|
|
+ (
|
|
|
+ SELECT A.LINKID, A.LENGTH, B.SPEED
|
|
|
+ FROM LINK A, STAT_5MIN_12LOC B
|
|
|
+ WHERE A.LINKID = B.LINKID
|
|
|
+ AND A.LINKLEVEL ='1'
|
|
|
+ AND STAT_DATE = SUBSTR(#{regDate}, 1, 12)
|
|
|
+ ) a1,
|
|
|
+ (
|
|
|
+ SELECT a.LOGICALLINKID, a.LINKID
|
|
|
+ FROM LOGICALLINK a,
|
|
|
+ (
|
|
|
+ SELECT LINKID
|
|
|
+ FROM LINK
|
|
|
+ WHERE LINKLEVEL = #{linkLevel}
|
|
|
+ ) B
|
|
|
+ WHERE a.LOGICALLINKID = b.LINKID
|
|
|
+ AND a.LINKLEVEL = '1'
|
|
|
+ ) b1
|
|
|
+ WHERE a1.LINKID = b1.LINKID
|
|
|
+ GROUP BY b1.LOGICALLINKID
|
|
|
+ </insert>
|
|
|
+
|
|
|
+ <update id="updateStat5Min12LocTravelTime" parameterType="java.lang.String">
|
|
|
+ UPDATE STAT_5MIN_12LOC a
|
|
|
+ SET TRAVEL_TIME =
|
|
|
+ (
|
|
|
+ SELECT (b.LENGTH * 3.6)/a.SPEED
|
|
|
+ FROM LINK b
|
|
|
+ WHERE a.LinkID = b.LinkID
|
|
|
+ )
|
|
|
+ WHERE LINKLEVEL IN('2', '3', '4')
|
|
|
+ AND STAT_DATE = SUBSTR(#{regDate}, 1, 12)
|
|
|
+ </update>
|
|
|
+
|
|
|
+
|
|
|
+ <insert id="insertStat5MinExw" parameterType="java.lang.String">
|
|
|
+ INSERT INTO STAT_5MIN_EXW(STAT_DATE,
|
|
|
+ LINKID, LINKLEVEL, DAY_TYPE, SPEED, DATA_CNT, TRAVEL_TIME)
|
|
|
+ SELECT a1.S_DATE, a1.LINKID, '1' LinkLEVEL,
|
|
|
+ a1.DAY_TYPE, a1.Speed, DataCnt,
|
|
|
+ ROUND(b1.LENGTH / ((a1.Speed * 1000)/3600)) TRAVEL_TIME
|
|
|
+ FROM (
|
|
|
+ SELECT SUBSTR(#{regDate}, 1, 12) S_Date,
|
|
|
+ a.LINKID,
|
|
|
+ TO_CHAR(TO_DATE(#{regDate}, 'YYYYMMDDHH24MISS'), 'D') DAY_TYPE,
|
|
|
+ AVG(SPEED) Speed,
|
|
|
+ COUNT(*) DataCnt
|
|
|
+ FROM STAT_LOCAL a, LINK_FILTER b
|
|
|
+ WHERE a.LINKID = b.LINKID
|
|
|
+ AND b.ROADRANK IS NOT NULL
|
|
|
+ AND b.LINKLEVEL = '1'
|
|
|
+ AND b.DATA_CNT <![CDATA[ >= ]]> #{codeValue4}
|
|
|
+ AND a.SPEED <![CDATA[ <= ]]> B.STDV_HSPEED
|
|
|
+ AND a.SPEED <![CDATA[ >= ]]> B.STDV_LSPEED
|
|
|
+ AND a.SPEED <![CDATA[ <= ]]> B.STAT_HSPEED
|
|
|
+ AND a.SPEED <![CDATA[ >= ]]> B.STAT_LSPEED
|
|
|
+ AND a.SPEED <![CDATA[ <= ]]> B.GRAD_HSPEED
|
|
|
+ AND a.SPEED <![CDATA[ >= ]]> B.GRAD_LSPEED
|
|
|
+ AND a.REV_TYPE = 'S'
|
|
|
+ AND a.SPEED > 0
|
|
|
+ GROUP BY a.LINKID
|
|
|
+ ) a1, LINK b1
|
|
|
+ WHERE a1.LINKID = b1.LINKID
|
|
|
+ UNION ALL
|
|
|
+ SELECT a1.S_DATE, a1.LINKID, '1' LinkLEVEL,
|
|
|
+ a1.DAY_TYPE, a1.Speed, DataCnt,
|
|
|
+ ROUND(b1.LENGTH / ((a1.Speed * 1000)/3600)) TRAVEL_TIME
|
|
|
+ FROM (
|
|
|
+ SELECT SUBSTR(#{regDate}, 1, 12) S_Date,
|
|
|
+ a.LINKID,
|
|
|
+ TO_CHAR(TO_DATE(#{regDate}, 'YYYYMMDDHH24MISS'), 'D') DAY_TYPE,
|
|
|
+ AVG(SPEED) Speed,
|
|
|
+ COUNT(*) DataCnt
|
|
|
+ FROM STAT_LOCAL a, LINK_FILTER b
|
|
|
+ WHERE a.LINKID = b.LINKID
|
|
|
+ AND b.ROADRANK IS NOT NULL
|
|
|
+ AND b.LINKLEVEL = '1'
|
|
|
+ AND b.DATA_CNT <![CDATA[ < ]]> #{codeValue4}
|
|
|
+ AND a.SPEED <![CDATA[ <= ]]> B.STAT_HSPEED
|
|
|
+ AND a.SPEED <![CDATA[ >= ]]> B.STAT_LSPEED
|
|
|
+ AND a.SPEED <![CDATA[ <=]]> B.GRAD_HSPEED
|
|
|
+ AND a.SPEED <![CDATA[ >= ]]> B.GRAD_LSPEED
|
|
|
+ AND a.REV_TYPE = 'S'
|
|
|
+ AND a.SPEED > 0
|
|
|
+ GROUP BY a.LINKID
|
|
|
+ ) a1, LINK b1
|
|
|
+ WHERE a1.LINKID = b1.LINKID
|
|
|
+ </insert>
|
|
|
+
|
|
|
+
|
|
|
+ <insert id="insertStat5MinExwLevel" parameterType="java.lang.String">
|
|
|
+ INSERT INTO STAT_5MIN_EXW(STAT_DATE,
|
|
|
+ LINKID, LINKLEVEL, DAY_TYPE, SPEED, DATA_CNT)
|
|
|
+ SELECT SUBSTR(#{regDate}, 1, 12),
|
|
|
+ b1.LOGICALLINKID, #{linkLevel} LINKLEVEL,
|
|
|
+ TO_CHAR(TO_DATE(#{regDate}, 'YYYYMMDDHH24MISS'), 'D') DAY_TYPE,
|
|
|
+ ROUND(SUM(a1.LENGTH * a1.SPEED)/SUM(a1.LENGTH)) SPEED,
|
|
|
+ COUNT(*) DATA_CNT
|
|
|
+ FROM
|
|
|
+ (
|
|
|
+ SELECT A.LINKID, A.LENGTH, B.SPEED
|
|
|
+ FROM LINK A, STAT_5MIN_EXW B
|
|
|
+ WHERE A.LINKID = B.LINKID
|
|
|
+ AND A.LINKLEVEL ='1'
|
|
|
+ AND STAT_DATE = SUBSTR(#{regDate}, 1, 12)
|
|
|
+ ) a1,
|
|
|
+ (
|
|
|
+ SELECT a.LOGICALLINKID, a.LINKID
|
|
|
+ FROM LOGICALLINK a,
|
|
|
+ (
|
|
|
+ SELECT LINKID
|
|
|
+ FROM LINK
|
|
|
+ WHERE LINKLEVEL = #{linkLevel}
|
|
|
+ ) B
|
|
|
+ WHERE a.LOGICALLINKID = b.LINKID
|
|
|
+ AND a.LINKLEVEL = '1'
|
|
|
+ ) b1
|
|
|
+ WHERE a1.LINKID = b1.LINKID
|
|
|
+ GROUP BY b1.LOGICALLINKID
|
|
|
+ </insert>
|
|
|
+
|
|
|
+ <update id="updateStat5MinExwTravelTime" parameterType="java.lang.String">
|
|
|
+ UPDATE STAT_5MIN_EXW a
|
|
|
+ SET TRAVEL_TIME =
|
|
|
+ (
|
|
|
+ SELECT (b.LENGTH * 3.6)/a.SPEED
|
|
|
+ FROM LINK b
|
|
|
+ WHERE a.LinkID = b.LinkID
|
|
|
+ )
|
|
|
+ WHERE LINKLEVEL IN('2', '3', '4')
|
|
|
+ AND STAT_DATE = SUBSTR(#{regDate}, 1, 12)
|
|
|
+ </update>
|
|
|
+
|
|
|
+ <insert id="insertStat5MinLoc" parameterType="java.lang.String">
|
|
|
+ INSERT INTO STAT_5MIN_LOC(STAT_DATE,
|
|
|
+ LINKID, LINKLEVEL, DAY_TYPE, SPEED, DATA_CNT, TRAVEL_TIME)
|
|
|
+ SELECT a1.S_DATE, a1.LINKID, '1' LinkLEVEL,
|
|
|
+ a1.DAY_TYPE, a1.Speed, DataCnt,
|
|
|
+ ROUND(b1.LENGTH / ((a1.Speed * 1000)/3600)) TRAVEL_TIME
|
|
|
+ FROM (
|
|
|
+ SELECT SUBSTR(#{regDate}, 1, 12) S_Date,
|
|
|
+ a.LINKID,
|
|
|
+ TO_CHAR(TO_DATE(#{regDate}, 'YYYYMMDDHH24MISS'), 'D') DAY_TYPE,
|
|
|
+ AVG(SPEED) Speed,
|
|
|
+ COUNT(*) DataCnt
|
|
|
+ FROM STAT_LOCAL a, LINK_FILTER b
|
|
|
+ WHERE a.LINKID = b.LINKID
|
|
|
+ AND b.ROADRANK IS NOT NULL
|
|
|
+ AND b.LINKLEVEL = '1'
|
|
|
+ AND b.DATA_CNT <![CDATA[ >= ]]> #{codeValue4}
|
|
|
+ AND a.SPEED <![CDATA[ <= ]]> B.STDV_HSPEED
|
|
|
+ AND a.SPEED <![CDATA[ >= ]]> B.STDV_LSPEED
|
|
|
+ AND a.SPEED <![CDATA[ <= ]]> B.STAT_HSPEED
|
|
|
+ AND a.SPEED <![CDATA[ >= ]]> B.STAT_LSPEED
|
|
|
+ AND a.SPEED <![CDATA[ <= ]]> B.GRAD_HSPEED
|
|
|
+ AND a.SPEED <![CDATA[ >= ]]> B.GRAD_LSPEED
|
|
|
+ AND a.REV_TYPE = 'U'
|
|
|
+ AND a.SPEED > 0
|
|
|
+ GROUP BY a.LINKID
|
|
|
+ ) a1, LINK b1
|
|
|
+ WHERE a1.LINKID = b1.LINKID
|
|
|
+ UNION ALL
|
|
|
+ SELECT a1.S_DATE, a1.LINKID, '1' LinkLEVEL,
|
|
|
+ a1.DAY_TYPE, a1.Speed, DataCnt,
|
|
|
+ ROUND(b1.LENGTH / ((a1.Speed * 1000)/3600)) TRAVEL_TIME
|
|
|
+ FROM (
|
|
|
+ SELECT SUBSTR(#{regDate}, 1, 12) S_Date,
|
|
|
+ a.LINKID,
|
|
|
+ TO_CHAR(TO_DATE(#{regDate}, 'YYYYMMDDHH24MISS'), 'D') DAY_TYPE,
|
|
|
+ AVG(SPEED) Speed,
|
|
|
+ COUNT(*) DataCnt
|
|
|
+ FROM STAT_LOCAL a, LINK_FILTER b
|
|
|
+ WHERE a.LINKID = b.LINKID
|
|
|
+ AND b.ROADRANK IS NOT NULL
|
|
|
+ AND b.LINKLEVEL = '1'
|
|
|
+ AND b.DATA_CNT <![CDATA[ < ]]> #{codeValue4}
|
|
|
+ AND a.SPEED <![CDATA[ <= ]]> B.STAT_HSPEED
|
|
|
+ AND a.SPEED <![CDATA[ >= ]]> B.STAT_LSPEED
|
|
|
+ AND a.SPEED <![CDATA[ <= ]]> B.GRAD_HSPEED
|
|
|
+ AND a.SPEED <![CDATA[ >= ]]> B.GRAD_LSPEED
|
|
|
+ AND a.REV_TYPE = 'U'
|
|
|
+ AND a.SPEED > 0
|
|
|
+ GROUP BY a.LINKID
|
|
|
+ ) a1, LINK b1
|
|
|
+ WHERE a1.LINKID = b1.LINKID
|
|
|
+ </insert>
|
|
|
+
|
|
|
+
|
|
|
+ <insert id="insertStat5MinLocLevel" parameterType="java.lang.String">
|
|
|
+ INSERT INTO STAT_5MIN_LOC(STAT_DATE,
|
|
|
+ LINKID, LINKLEVEL, DAY_TYPE, SPEED, DATA_CNT)
|
|
|
+ SELECT SUBSTR(#{regDate}, 1, 12),
|
|
|
+ b1.LOGICALLINKID, #{linkLevel} LINKLEVEL,
|
|
|
+ TO_CHAR(TO_DATE(#{regDate}, 'YYYYMMDDHH24MISS'), 'D') DAY_TYPE,
|
|
|
+ ROUND(SUM(a1.LENGTH * a1.SPEED)/SUM(a1.LENGTH)) SPEED,
|
|
|
+ COUNT(*) DATA_CNT
|
|
|
+ FROM
|
|
|
+ (
|
|
|
+ SELECT A.LINKID, A.LENGTH, B.SPEED
|
|
|
+ FROM LINK A, STAT_5MIN_LOC B
|
|
|
+ WHERE A.LINKID = B.LINKID
|
|
|
+ AND A.LINKLEVEL = '1'
|
|
|
+ AND STAT_DATE = SUBSTR(#{regDate}, 1, 12)
|
|
|
+ ) a1,
|
|
|
+ (
|
|
|
+ SELECT a.LOGICALLINKID, a.LINKID
|
|
|
+ FROM LOGICALLINK a,
|
|
|
+ (
|
|
|
+ SELECT LINKID
|
|
|
+ FROM LINK
|
|
|
+ WHERE LINKLEVEL = #{linkLevel}
|
|
|
+ ) B
|
|
|
+ WHERE a.LOGICALLINKID = b.LINKID
|
|
|
+ AND a.LINKLEVEL = '1'
|
|
|
+ ) b1
|
|
|
+ WHERE a1.LINKID = b1.LINKID
|
|
|
+ GROUP BY b1.LOGICALLINKID
|
|
|
+ </insert>
|
|
|
+
|
|
|
+ <update id="updateStat5MinLocTravelTime" parameterType="java.lang.String">
|
|
|
+ UPDATE STAT_5MIN_LOC a
|
|
|
+ SET TRAVEL_TIME =
|
|
|
+ (
|
|
|
+ SELECT (b.LENGTH * 3.6)/a.SPEED
|
|
|
+ FROM LINK b
|
|
|
+ WHERE a.LinkID = b.LinkID
|
|
|
+ )
|
|
|
+ WHERE LINKLEVEL IN('2', '3', '4')
|
|
|
+ AND STAT_DATE = SUBSTR(#{regDate}, 1, 12)
|
|
|
+ </update>
|
|
|
+
|
|
|
+
|
|
|
+ <insert id="insertStat5MinObeLoc" parameterType="java.lang.String">
|
|
|
+ INSERT INTO STAT_5MIN_OBELOC(STAT_DATE, LINKID, LINKLEVEL, DAY_TYPE, SPEED, TRAVEL_TIME, DATA_CNT)
|
|
|
+ SELECT SUBSTR(#{regDate}, 1, 12) AS STAT_DATE, A.LINKID, MIN(B.LINKLEVEL) AS LINKLVEL,
|
|
|
+ TO_CHAR(TO_DATE(#{regDate}, 'YYYYMMDDHH24MISS'), 'D') AS DAY_TYPE,
|
|
|
+ ROUND(AVG(A.SPEED)) AS SPEED,
|
|
|
+ ROUND( (MIN(B.LENGTH) * 3.6) / ROUND(AVG(A.SPEED)) ) AS TRAVEL_TIME,
|
|
|
+ SUM(A.DATACNT) AS DATA_CNT
|
|
|
+ FROM TRAFFIC_OBELOC_HIST A, LINK B
|
|
|
+ WHERE B.LINKLEVEL = '1'
|
|
|
+ AND A.LINKID = B.LINKID
|
|
|
+ AND A.REGDATE BETWEEN TO_DATE(#{regDate}, 'YYYYMMDDHH24MISS') - 299/86400
|
|
|
+ AND TO_DATE(#{regDate}, 'YYYYMMDDHH24MISS')
|
|
|
+ GROUP BY A.LINKID
|
|
|
+ </insert>
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ <insert id="insertPatternHist" parameterType="java.lang.String">
|
|
|
+ INSERT INTO ${targetTable}(PATN_DATE, PATN_TIME, LINKID, SPEED, LOG_DATE, LINKLEVEL)
|
|
|
+ SELECT SUBSTR(#{regDate}, 1, 8), PATN_TIME, LINKID, SPEED, LOG_DATE, LINKLEVEL
|
|
|
+ FROM ${fromTable}
|
|
|
+ WHERE PATN_TIME = SUBSTR(#{regDate}, 9, 4)
|
|
|
+ </insert>
|
|
|
+
|
|
|
+ <update id="updatePattern" parameterType="java.lang.String">
|
|
|
+ UPDATE ${targetTable} a
|
|
|
+ SET (SPEED, LOG_DATE) =
|
|
|
+ (
|
|
|
+ SELECT DECODE(a.SPEED, NULL, SPEED,
|
|
|
+ ( (a.SPEED * TO_NUMBER(#{minValue})) + ( SPEED * TO_NUMBER(#{maxValue}) ) ) / ( TO_NUMBER(#{minValue}) + TO_NUMBER(#{maxValue}) ) ),
|
|
|
+ SYSDATE
|
|
|
+ FROM STAT_5MIN_CENTER
|
|
|
+ WHERE LINKID = a.LINKID
|
|
|
+ AND STAT_DATE = SUBSTR(#{regDate}, 1, 12)
|
|
|
+ )
|
|
|
+ WHERE PATN_TIME = SUBSTR(#{regDate}, 9, 4)
|
|
|
+ AND LINKID IN (SELECT LINKID
|
|
|
+ FROM STAT_5MIN_CENTER
|
|
|
+ WHERE STAT_DATE = SUBSTR(#{regDate}, 1, 12)
|
|
|
+ AND LINKLEVEL IN ('1', '4')
|
|
|
+ AND LINKID NOT IN
|
|
|
+ (SELECT A.LINKID
|
|
|
+ FROM INCIDENT_CENTER A
|
|
|
+ WHERE TO_DATE(SUBSTR(#{regDate}, 1, 14), 'YYYYMMDDHH24MISS') <![CDATA[ >= ]]> A.STARTDATE
|
|
|
+ AND TO_DATE(SUBSTR(#{regDate}, 1, 14), 'YYYYMMDDHH24MISS') <![CDATA[ <= ]]> DECODE((SIGN((ENDDATE-STARTDATE)*24*60)-30), 1, A.ENDDATE+1/24/60*60, A.ENDDATE+1/24/60*30)
|
|
|
+ GROUP BY A.LINKID)
|
|
|
+ )
|
|
|
+ </update>
|
|
|
+
|
|
|
+ <update id="mergePatternWeekJob" parameterType="java.lang.String">
|
|
|
+ MERGE INTO PATN_WEEK_JOB NP
|
|
|
+ USING (SELECT B.LINKID, NVL(A.SPEED, 0) AS SPEED, SYSDATE AS LOG_DATE, A.LINKLEVEL
|
|
|
+ FROM STAT_5MIN_CENTER A, LINK B
|
|
|
+ WHERE A.STAT_DATE = SUBSTR(#{regDate}, 1, 12)
|
|
|
+ AND B.LINKLEVEL IN ('1', '4')
|
|
|
+ AND A.SPEED > 0 AND A.SPEED <![CDATA[ < ]]> 150
|
|
|
+ AND A.LINKID(+) = B.LINKID
|
|
|
+ AND A.LINKLEVEL = B.LINKLEVEL) MG
|
|
|
+ ON (NP.PATN_TIME = SUBSTR(#{regDate}, 9, 4) AND NP.LINKID = MG.LINKID)
|
|
|
+ WHEN MATCHED THEN
|
|
|
+ UPDATE SET NP.${columnName} = MG.SPEED
|
|
|
+ WHEN NOT MATCHED THEN
|
|
|
+ INSERT (NP.PATN_TIME, NP.LINKID, NP.SPEED3, NP.SPEED4, NP.SPEED5, NP.LINKLEVEL)
|
|
|
+ VALUES (SUBSTR(#{regDate}, 9, 4), MG.LINKID, 0, 0, MG.SPEED, MG.LINKLEVEL)
|
|
|
+ </update>
|
|
|
+
|
|
|
+ <update id="updatePatternWeekJob" parameterType="java.lang.String">
|
|
|
+ UPDATE PATN_WEEK_JOB A
|
|
|
+ SET A.${columnName} = 0
|
|
|
+ WHERE A.PATN_TIME = SUBSTR(#{regDate}, 9, 4)
|
|
|
+ AND A.LINKID IN (
|
|
|
+ SELECT A.LINKID
|
|
|
+ FROM INCIDENT_CENTER A
|
|
|
+ WHERE TO_DATE(SUBSTR(#{regDate}, 1, 14), 'YYYYMMDDHH24MISS') <![CDATA[ >=]]> A.STARTDATE
|
|
|
+ AND TO_DATE(SUBSTR(#{regDate}, 1, 14), 'YYYYMMDDHH24MISS') <![CDATA[ <= ]]> DECODE((SIGN((ENDDATE-STARTDATE)*24*60)-30), 1, A.ENDDATE+1/24/60*60, A.ENDDATE+1/24/60*30)
|
|
|
+ GROUP BY A.LINKID)
|
|
|
+ </update>
|
|
|
+
|
|
|
+ <update id="mergePatternWeek" parameterType="java.lang.String">
|
|
|
+ MERGE INTO PATN_WEEK NP
|
|
|
+ USING (SELECT LINKID, LINKLEVEL,
|
|
|
+ (SPEED3+SPEED4+SPEED5)/(DECODE(SPEED3,0,0,1)+DECODE(SPEED4,0,0,1)+DECODE(SPEED4,0,0,1)) AS AVGSPEED
|
|
|
+ FROM PATN_WEEK_JOB
|
|
|
+ WHERE PATN_TIME = SUBSTR(#{regDate}, 9, 4)SUBSTR(#{regDate}, 9, 4)
|
|
|
+ AND (DECODE(SPEED3,0,0,1)+DECODE(SPEED4,0,0,1)+DECODE(SPEED4,0,0,1)) > 0
|
|
|
+ AND (SPEED3+SPEED4+SPEED5) <![CDATA[ > ]]> 0
|
|
|
+ AND (SPEED3+SPEED4+SPEED5) <![CDATA[ < ]]> 450) MG
|
|
|
+ ON (NP.PATN_TIME = SUBSTR(#{regDate}, 9, 4) AND NP.LINKID = MG.LINKID)
|
|
|
+ WHEN MATCHED THEN
|
|
|
+ UPDATE SET NP.SPEED = DECODE(NP.SPEED, NULL, MG.AVGSPEED, ((NP.SPEED*TO_NUMBER(#{minValue})+MG.AVGSPEED*TO_NUMBER(#{maxValue}))/(TO_NUMBER(#{minValue})+TO_NUMBER(#{maxValue})))),
|
|
|
+ NP.LOG_DATE = SYSDATE
|
|
|
+ WHEN NOT MATCHED THEN
|
|
|
+ INSERT (NP.PATN_TIME, NP.LINKID, NP.SPEED, NP.LOG_DATE, NP.LINKLEVEL)
|
|
|
+ VALUES (SUBSTR(#{regDate}, 9, 4), MG.LINKID, MG.AVGSPEED, SYSDATE, MG.LINKLEVEL)
|
|
|
+ </update>
|
|
|
+
|
|
|
+</mapper>
|