Commit 79102718 authored by wujiang's avatar wujiang

提交统计代码

parent 9d79da1b
<?xml version="1.0" encoding="UTF-8"?> <?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"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yeejoin.amos.knowledgebase.face.orm.dao.StatisticsRecordMapper"> <mapper
namespace="com.yeejoin.amos.knowledgebase.face.orm.dao.StatisticsRecordMapper">
<update id="deleteAll"> <update id="deleteAll">
truncate table knowlege_statistics_record truncate table knowlege_statistics_record
</update> </update>
<!-- 灾情数量同比环比 --> <!-- 灾情数量同比环比 -->
<select id="selectDisasterCount" resultType="java.util.Map"> <select id="selectDisasterCount" resultType="java.util.Map">
SELECT SELECT
(SELECT (SELECT
COUNT(1) COUNT(1)
FROM FROM
knowlege_statistics_record knowlege_statistics_record
WHERE record_name = "DISASTER_RECORD" WHERE record_name =
AND DATE(disaster_time) BETWEEN DATE_ADD( "DISASTER_RECORD"
CURDATE(), AND DATE(disaster_time) BETWEEN DATE_ADD(
INTERVAL - DAY(CURDATE()) + 1 DAY CURDATE(),
) INTERVAL - DAY(CURDATE()) + 1 DAY
AND LAST_DAY(CURDATE())) AS currentMonthCount, )
(SELECT AND LAST_DAY(CURDATE())) AS
COUNT(1) currentMonthCount,
FROM (SELECT
knowlege_statistics_record COUNT(1)
WHERE record_name = "DISASTER_RECORD" FROM
AND DATE(disaster_time) BETWEEN DATE_SUB( knowlege_statistics_record
CURDATE() - DAY(CURDATE()) + 1, WHERE
INTERVAL 1 MONTH record_name = "DISASTER_RECORD"
) AND DATE(disaster_time) BETWEEN
AND LAST_DAY(DATE_SUB(NOW(), INTERVAL 1 MONTH))) AS lastMonthCount, DATE_SUB(
(SELECT CURDATE() - DAY(CURDATE()) + 1,
COUNT(1) INTERVAL 1 MONTH
FROM )
knowlege_statistics_record AND
WHERE record_name = "DISASTER_RECORD" LAST_DAY(DATE_SUB(NOW(), INTERVAL 1 MONTH))) AS lastMonthCount,
AND DATE(disaster_time) BETWEEN DATE_SUB( (SELECT
CURDATE() - DAY(CURDATE()) + 1, COUNT(1)
INTERVAL 2 MONTH FROM
) knowlege_statistics_record
AND LAST_DAY(DATE_SUB(NOW(), INTERVAL 2 MONTH))) AS last2MonthCount, WHERE record_name =
(SELECT "DISASTER_RECORD"
COUNT(1) AND DATE(disaster_time) BETWEEN DATE_SUB(
FROM CURDATE() -
knowlege_statistics_record DAY(CURDATE()) + 1,
WHERE record_name = "DISASTER_RECORD" INTERVAL 2 MONTH
AND DATE(disaster_time) BETWEEN DATE_SUB( )
CURDATE() - DAY(CURDATE()) + 1, AND LAST_DAY(DATE_SUB(NOW(),
INTERVAL 1 YEAR INTERVAL 2 MONTH))) AS last2MonthCount,
) (SELECT
AND LAST_DAY(DATE_SUB(CURDATE(), INTERVAL 1 YEAR))) AS lastYearCurrentMonthCount, COUNT(1)
(SELECT FROM
COUNT(1) knowlege_statistics_record
FROM WHERE record_name = "DISASTER_RECORD"
knowlege_statistics_record AND
WHERE record_name = "DISASTER_RECORD" DATE(disaster_time) BETWEEN DATE_SUB(
AND DATE(disaster_time) BETWEEN DATE_SUB( CURDATE() - DAY(CURDATE()) + 1,
DATE_SUB( INTERVAL 1 YEAR
CURDATE() - DAY(CURDATE()) + 1, )
INTERVAL 1 MONTH AND LAST_DAY(DATE_SUB(CURDATE(), INTERVAL 1 YEAR))) AS
), lastYearCurrentMonthCount,
INTERVAL 1 YEAR (SELECT
) COUNT(1)
AND LAST_DAY( FROM
DATE_SUB( knowlege_statistics_record
DATE_SUB(CURDATE(), INTERVAL 1 YEAR), WHERE record_name = "DISASTER_RECORD"
INTERVAL 1 MONTH AND
) DATE(disaster_time) BETWEEN DATE_SUB(
)) AS lastYearLastMonthCount, DATE_SUB(
(SELECT CURDATE() -
COUNT(1) DAY(CURDATE()) + 1,
FROM INTERVAL 1 MONTH
knowlege_statistics_record ),
WHERE record_name = "DISASTER_RECORD" INTERVAL 1 YEAR
AND DATE(disaster_time) BETWEEN CONCAT( )
YEAR(NOW()), AND LAST_DAY(
'-', DATE_SUB(
LPAD((QUARTER(CURDATE()) - 1) * 3+1, 2, '0'), DATE_SUB(CURDATE(), INTERVAL 1 YEAR),
'-01' INTERVAL 1 MONTH
) )
AND LAST_DAY( )) AS
CONCAT( lastYearLastMonthCount,
YEAR(NOW()), (SELECT
'-', COUNT(1)
LPAD(QUARTER(NOW()) * 3, 2, 0), FROM
'-01' knowlege_statistics_record
) WHERE record_name = "DISASTER_RECORD"
)) AS currentQuarterCount, AND DATE(disaster_time) BETWEEN
(SELECT CONCAT(
COUNT(1) YEAR(NOW()),
FROM '-',
knowlege_statistics_record LPAD((QUARTER(CURDATE()) - 1) * 3+1, 2, '0'),
WHERE record_name = "DISASTER_RECORD" '-01'
AND DATE(disaster_time) BETWEEN DATE_SUB( )
CONCAT( AND LAST_DAY(
YEAR(NOW()), CONCAT(
'-', YEAR(NOW()),
LPAD((QUARTER(CURDATE()) - 1) * 3+1, 2, '0'), '-',
'-01' LPAD(QUARTER(NOW()) * 3, 2,
), 0),
INTERVAL 1 QUARTER '-01'
) )
AND DATE_SUB( )) AS currentQuarterCount,
CONCAT( (SELECT
YEAR(NOW()), COUNT(1)
'-', FROM
LPAD((QUARTER(CURDATE()) - 1) * 3+1, 2, '0'), knowlege_statistics_record
'-01' WHERE record_name = "DISASTER_RECORD"
), AND
INTERVAL 1 DAY DATE(disaster_time) BETWEEN DATE_SUB(
)) AS lastQuarterCount, CONCAT(
(SELECT YEAR(NOW()),
COUNT(1) '-',
FROM LPAD((QUARTER(CURDATE()) - 1) * 3+1, 2, '0'),
knowlege_statistics_record '-01'
WHERE record_name = "DISASTER_RECORD" ),
AND DATE(disaster_time) BETWEEN DATE_SUB( INTERVAL 1 QUARTER
CONCAT( )
YEAR(NOW()), AND DATE_SUB(
'-', CONCAT(
LPAD((QUARTER(CURDATE()) - 1) * 3+1, 2, '0'), YEAR(NOW()),
'-01' '-',
), LPAD((QUARTER(CURDATE()) - 1) *
INTERVAL 1 YEAR 3+1, 2, '0'),
) '-01'
AND DATE_SUB( ),
LAST_DAY( INTERVAL 1 DAY
CONCAT( )) AS lastQuarterCount,
YEAR(NOW()), (SELECT
'-', COUNT(1)
LPAD(QUARTER(NOW()) * 3, 2, 0), FROM
'-01' knowlege_statistics_record
) WHERE record_name =
), "DISASTER_RECORD"
INTERVAL 1 YEAR AND DATE(disaster_time) BETWEEN DATE_SUB(
)) AS lastYearCurrentQuarterCount, CONCAT(
(SELECT YEAR(NOW()),
COUNT(1) '-',
FROM LPAD((QUARTER(CURDATE()) - 1) * 3+1, 2, '0'),
knowlege_statistics_record '-01'
WHERE record_name = "DISASTER_RECORD" ),
AND DATE(disaster_time) BETWEEN CONCAT(YEAR(CURDATE()), '-01-01') INTERVAL 1 YEAR
AND CONCAT(YEAR(CURDATE()), '-12-31')) AS currentYearCount, )
(SELECT AND DATE_SUB(
COUNT(1) LAST_DAY(
FROM CONCAT(
knowlege_statistics_record YEAR(NOW()),
WHERE record_name = "DISASTER_RECORD" '-',
AND DATE(disaster_time) BETWEEN CONCAT( LPAD(QUARTER(NOW()) * 3, 2, 0),
YEAR(DATE_SUB(CURDATE(), INTERVAL 1 YEAR)), '-01'
'-01-01' )
) ),
AND CONCAT( INTERVAL 1 YEAR
YEAR(DATE_SUB(CURDATE(), INTERVAL 1 YEAR)), )) AS
'-12-31' lastYearCurrentQuarterCount,
)) AS lastYearCount (SELECT
</select> COUNT(1)
FROM
knowlege_statistics_record
WHERE record_name = "DISASTER_RECORD"
AND
DATE(disaster_time) BETWEEN CONCAT(YEAR(CURDATE()), '-01-01')
AND
CONCAT(YEAR(CURDATE()), '-12-31')) AS currentYearCount,
(SELECT
COUNT(1)
FROM
knowlege_statistics_record
WHERE record_name =
"DISASTER_RECORD"
AND DATE(disaster_time) BETWEEN CONCAT(
YEAR(DATE_SUB(CURDATE(), INTERVAL 1 YEAR)),
'-01-01'
)
AND CONCAT(
YEAR(DATE_SUB(CURDATE(), INTERVAL 1 YEAR)),
'-12-31'
)) AS lastYearCount
</select>
<!-- 燃烧物质分类查询 --> <!-- 燃烧物质分类查询 -->
<select id="selectCategoryByName" resultType="java.util.Map" parameterType="java.lang.String"> <select id="selectCategoryByName" resultType="java.util.Map"
SELECT parameterType="java.lang.String">
category_value category, count(1) quantity SELECT
FROM category_value category, count(1) quantity
knowlege_statistics_record FROM
WHERE record_name = #{recordName} knowlege_statistics_record
group by category_value WHERE record_name = #{recordName}
</select> group by
category_value
<select id="selectCountByNameAndDateRange" resultType="java.util.Map" parameterType="java.util.Map"> </select>
SELECT
DATE_FORMAT(disaster_time, #{format}) AS period, <select id="selectCountByNameAndDateRange"
SUM(COUNT_VALUE) quantity resultType="java.util.Map" parameterType="java.util.Map">
FROM SELECT
knowlege_statistics_record DATE_FORMAT(disaster_time, #{format}) AS period,
WHERE record_name = #{recordName} SUM(COUNT_VALUE) quantity
<if test="dateRangeLeft != null"> FROM
AND DATE_FORMAT(disaster_time, #{format}) <![CDATA[ >= ]]> DATE_FORMAT(#{dateRangeLeft}, #{format}) knowlege_statistics_record
</if> WHERE
<if test="dateRangeRight != null"> record_name = #{recordName}
AND DATE_FORMAT(disaster_time, #{format}) <![CDATA[ <= ]]> DATE_FORMAT(#{dateRangeRight}, #{format}) <if test="dateRangeLeft != null">
</if> AND DATE_FORMAT(disaster_time, #{format}) <![CDATA[ >= ]]>
GROUP BY period DATE_FORMAT(#{dateRangeLeft}, #{format})
ORDER BY period ASC </if>
</select> <if test="dateRangeRight != null">
AND DATE_FORMAT(disaster_time, #{format}) <![CDATA[ <= ]]>
DATE_FORMAT(#{dateRangeRight}, #{format})
</if>
GROUP BY period
ORDER BY period ASC
</select>
<select id="tagStatisticsMonth" resultType="java.util.Map"
parameterType="java.util.Map">
SELECT * FROM (
SELECT
SUM( ktv.TAG_VALUE ) AS
datas,DATE_FORMAT(ktv.REC_DATE,'%Y-%m') AS date
FROM
knowledge_tag_value ktv
LEFT JOIN knowledge_tag_instance kti ON
kti.SEQUENCE_NBR =
ktv.INSTANCE_SEQ
WHERE
TAG_NAME = #{tag} AND
ktv.REC_DATE BETWEEN #{startDate} AND #{endDate}
GROUP BY
DATE_FORMAT(ktv.REC_DATE,'%Y-%m')
UNION all
SELECT
0 AS datas,
DATE_FORMAT( @cdate := DATE_ADD( @cdate, INTERVAL + 1 MONTH ), '%Y-%m'
) date
FROM
( SELECT @cdate := DATE_ADD( DATE_SUB( #{startDate},
INTERVAL + 2 MONTH
), INTERVAL + 1 MONTH ) FROM knowledge_tag_value )
AS t1
WHERE
@cdate &lt; DATE_SUB( #{endDate} , INTERVAL + 0 MONTH )
) as
t2
GROUP BY date ASC
</select>
<select id="tagStatisticsYear" resultType="java.util.Map"
parameterType="java.util.Map">
SELECT * FROM (
SELECT
SUM( ktv.TAG_VALUE ) AS
datas,DATE_FORMAT(ktv.REC_DATE,'%Y') AS date
FROM
knowledge_tag_value
ktv
LEFT JOIN knowledge_tag_instance kti ON kti.SEQUENCE_NBR =
ktv.INSTANCE_SEQ
WHERE
TAG_NAME = #{tag} AND ktv.REC_DATE BETWEEN
#{startDate} AND #{endDate}
GROUP BY
DATE_FORMAT(ktv.REC_DATE,'%Y')
UNION all
SELECT
0 AS datas,
DATE_FORMAT( @cdate := DATE_ADD( @cdate,
INTERVAL + 1 YEAR ), '%Y' ) date
FROM
( SELECT @cdate := DATE_ADD(
DATE_SUB( #{startDate}, INTERVAL + 2 YEAR
), INTERVAL + 1 YEAR ) FROM
knowledge_tag_value ) AS t1
WHERE
@cdate &lt; DATE_SUB( #{endDate} ,
INTERVAL + 0 YEAR )
) as t2
GROUP BY date ASC
</select>
<select id="docStatisticsMonth" resultType="java.util.Map"
parameterType="java.util.Map">
SELECT * FROM (
SELECT
COUNT(1) AS datas,DATE_FORMAT(kdc.REC_DATE,'%Y-%m')AS date
FROM
knowledge_doc_content kdc
LEFT JOIN knowledge_doc_category kdca ON
kdca.SEQUENCE_NBR=kdc.DIRECTORY_ID
WHERE
kdc.REC_DATE BETWEEN #{startDate} AND #{endDate}
<if test="categoryName != null and categoryName != ''">
AND kdca.CATEGORY_NAME=#{categoryName}
</if>
GROUP BY
DATE_FORMAT(kdc.REC_DATE,'%Y-%m')
UNION all
SELECT
0 AS datas,
DATE_FORMAT( @cdate := DATE_ADD( @cdate, INTERVAL + 1 MONTH ), '%Y-%m' ) date
FROM
( SELECT @cdate := DATE_ADD( DATE_SUB(#{startDate}, INTERVAL + 2 MONTH
), INTERVAL + 1 MONTH ) FROM knowledge_tag_value ) AS t1
WHERE
@cdate &lt; DATE_SUB(#{endDate}, INTERVAL + 0 MONTH )
) AS t2
GROUP BY date ASC
</select>
<select id="docStatisticsYear" resultType="java.util.Map"
parameterType="java.util.Map">
SELECT * FROM (
SELECT
COUNT(1) AS datas,DATE_FORMAT(kdc.REC_DATE,'%Y')AS date
FROM
knowledge_doc_content kdc
LEFT JOIN knowledge_doc_category kdca ON
kdca.SEQUENCE_NBR=kdc.DIRECTORY_ID
WHERE
kdc.REC_DATE BETWEEN #{startDate} AND #{endDate}
<if test="categoryName != null and categoryName != ''">
AND kdca.CATEGORY_NAME=#{categoryName}
</if>
GROUP BY
DATE_FORMAT(kdc.REC_DATE,'%Y')
UNION all
SELECT
0 AS datas,
DATE_FORMAT( @cdate := DATE_ADD( @cdate, INTERVAL + 1 MONTH ), '%Y') date
FROM
( SELECT @cdate := DATE_ADD( DATE_SUB(#{startDate}, INTERVAL + 2 MONTH
), INTERVAL + 1 MONTH ) FROM knowledge_tag_value ) AS t1
WHERE
@cdate &lt; DATE_SUB(#{endDate}, INTERVAL + 0 MONTH )
) AS t2
GROUP BY date ASC
</select>
<select id="tagChartStatistics" resultType="java.util.Map"
parameterType="java.util.Map">
SELECT
COUNT(1) AS datas,${splitSQL} AS level
FROM
knowledge_doc_content kdc
LEFT JOIN knowledge_tag_instance kti ON kti.TARGET_SEQ = kdc.SEQUENCE_NBR
LEFT JOIN knowledge_tag_value ktv ON kti.SEQUENCE_NBR =
ktv.INSTANCE_SEQ
WHERE
TAG_NAME = #{tag} AND ktv.REC_DATE BETWEEN #{startDate}AND #{endDate}
GROUP BY
${splitSQL}
</select>
<select id="docChartStatistics" resultType="java.util.Map"
parameterType="java.util.Map">
SELECT
COUNT(1) AS datas,kdca.CATEGORY_NAME AS categoryName
FROM
knowledge_doc_content kdc
LEFT JOIN knowledge_doc_category kdca ON
kdca.SEQUENCE_NBR=kdc.DIRECTORY_ID
WHERE
kdc.REC_DATE BETWEEN #{startDate} AND #{endDate}
GROUP BY
kdca.CATEGORY_NAME
</select>
</mapper> </mapper>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment