417 lines
20 KiB
XML
417 lines
20 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.ruoyi.excel.wecom.mapper.CustomerStatisticsDataV2Mapper">
|
|||
|
|
|
|||
|
|
<resultMap id="BaseResultMap" type="com.ruoyi.excel.wecom.domain.CustomerStatisticsDataV2">
|
|||
|
|
<id column="id" property="id"/>
|
|||
|
|
<result column="corp_id" property="corpId"/>
|
|||
|
|
<result column="cur_date" property="curDate"/>
|
|||
|
|
<result column="group_name" property="groupName"/>
|
|||
|
|
<result column="tag_name" property="tagName"/>
|
|||
|
|
<result column="tag_group_id" property="tagGroupId"/>
|
|||
|
|
<result column="tag_id" property="tagId"/>
|
|||
|
|
<result column="data_level" property="dataLevel"/>
|
|||
|
|
<result column="parent_id" property="parentId"/>
|
|||
|
|
<result column="total_cost" property="totalCost"/>
|
|||
|
|
<result column="single_cost" property="singleCost"/>
|
|||
|
|
<result column="order_cost" property="orderCost"/>
|
|||
|
|
<result column="cost_input_type" property="costInputType"/>
|
|||
|
|
<result column="order_count" property="orderCount"/>
|
|||
|
|
<result column="customer_count" property="customerCount"/>
|
|||
|
|
<result column="timely_order_count" property="timelyOrderCount"/>
|
|||
|
|
<result column="non_timely_order_count" property="nonTimelyOrderCount"/>
|
|||
|
|
<result column="conversion_rate" property="conversionRate"/>
|
|||
|
|
<result column="timely_rate" property="timelyRate"/>
|
|||
|
|
<result column="non_timely_rate" property="nonTimelyRate"/>
|
|||
|
|
<result column="customer_attr_count" property="customerAttrCount"/>
|
|||
|
|
<result column="parent_count" property="parentCount"/>
|
|||
|
|
<result column="student_count" property="studentCount"/>
|
|||
|
|
<result column="teacher_count" property="teacherCount"/>
|
|||
|
|
<result column="unknown_attr_count" property="unknownAttrCount"/>
|
|||
|
|
<result column="parent_rate" property="parentRate"/>
|
|||
|
|
<result column="student_rate" property="studentRate"/>
|
|||
|
|
<result column="teacher_rate" property="teacherRate"/>
|
|||
|
|
<result column="unknown_rate" property="unknownRate"/>
|
|||
|
|
<result column="parent_order_count" property="parentOrderCount"/>
|
|||
|
|
<result column="student_order_count" property="studentOrderCount"/>
|
|||
|
|
<result column="teacher_order_count" property="teacherOrderCount"/>
|
|||
|
|
<result column="unknown_order_count" property="unknownOrderCount"/>
|
|||
|
|
<result column="parent_daily_count" property="parentDailyCount"/>
|
|||
|
|
<result column="student_daily_count" property="studentDailyCount"/>
|
|||
|
|
<result column="teacher_daily_count" property="teacherDailyCount"/>
|
|||
|
|
<result column="unknown_daily_count" property="unknownDailyCount"/>
|
|||
|
|
<result column="parent_daily_order_count" property="parentDailyOrderCount"/>
|
|||
|
|
<result column="student_daily_order_count" property="studentDailyOrderCount"/>
|
|||
|
|
<result column="teacher_daily_order_count" property="teacherDailyOrderCount"/>
|
|||
|
|
<result column="unknown_daily_order_count" property="unknownDailyOrderCount"/>
|
|||
|
|
<result column="parent_order_rate" property="parentOrderRate"/>
|
|||
|
|
<result column="student_order_rate" property="studentOrderRate"/>
|
|||
|
|
<result column="teacher_order_rate" property="teacherOrderRate"/>
|
|||
|
|
<result column="unknown_order_rate" property="unknownOrderRate"/>
|
|||
|
|
<result column="intention_count" property="intentionCount"/>
|
|||
|
|
<result column="active_quote_count" property="activeQuoteCount"/>
|
|||
|
|
<result column="passive_quote_count" property="passiveQuoteCount"/>
|
|||
|
|
<result column="no_quote_count" property="noQuoteCount"/>
|
|||
|
|
<result column="deleted_quote_count" property="deletedQuoteCount"/>
|
|||
|
|
<result column="active_quote_rate" property="activeQuoteRate"/>
|
|||
|
|
<result column="passive_quote_rate" property="passiveQuoteRate"/>
|
|||
|
|
<result column="no_quote_rate" property="noQuoteRate"/>
|
|||
|
|
<result column="deleted_quote_rate" property="deletedQuoteRate"/>
|
|||
|
|
<result column="grade_count" property="gradeCount"/>
|
|||
|
|
<result column="primary_count" property="primaryCount"/>
|
|||
|
|
<result column="middle_count" property="middleCount"/>
|
|||
|
|
<result column="high_count" property="highCount"/>
|
|||
|
|
<result column="primary_rate" property="primaryRate"/>
|
|||
|
|
<result column="middle_rate" property="middleRate"/>
|
|||
|
|
<result column="high_rate" property="highRate"/>
|
|||
|
|
<result column="sort_no" property="sortNo"/>
|
|||
|
|
<result column="create_time" property="createTime"/>
|
|||
|
|
<result column="update_time" property="updateTime"/>
|
|||
|
|
</resultMap>
|
|||
|
|
|
|||
|
|
<sql id="Base_Column_List">
|
|||
|
|
id, corp_id, cur_date, group_name, tag_name, tag_group_id, tag_id, data_level, parent_id,
|
|||
|
|
total_cost, single_cost, order_cost, cost_input_type,
|
|||
|
|
order_count, customer_count, timely_order_count, non_timely_order_count,
|
|||
|
|
conversion_rate, timely_rate, non_timely_rate,
|
|||
|
|
customer_attr_count, parent_count, student_count, teacher_count, unknown_attr_count,
|
|||
|
|
parent_rate, student_rate, teacher_rate, unknown_rate,
|
|||
|
|
parent_order_count, student_order_count, teacher_order_count, unknown_order_count,
|
|||
|
|
parent_daily_count, student_daily_count, teacher_daily_count, unknown_daily_count,
|
|||
|
|
parent_daily_order_count, student_daily_order_count, teacher_daily_order_count, unknown_daily_order_count,
|
|||
|
|
parent_order_rate, student_order_rate, teacher_order_rate, unknown_order_rate,
|
|||
|
|
intention_count, active_quote_count, passive_quote_count, no_quote_count, deleted_quote_count,
|
|||
|
|
active_quote_rate, passive_quote_rate, no_quote_rate, deleted_quote_rate,
|
|||
|
|
grade_count, primary_count, middle_count, high_count,
|
|||
|
|
primary_rate, middle_rate, high_rate,
|
|||
|
|
sort_no, create_time, update_time
|
|||
|
|
</sql>
|
|||
|
|
|
|||
|
|
<!-- 根据企业ID、日期、组名、标签名查询数据 -->
|
|||
|
|
<select id="selectByCorpDateGroupTag" resultMap="BaseResultMap">
|
|||
|
|
SELECT <include refid="Base_Column_List"/>
|
|||
|
|
FROM customer_statistics_data_v2
|
|||
|
|
WHERE corp_id = #{corpId}
|
|||
|
|
AND cur_date = #{curDate}
|
|||
|
|
AND group_name = #{groupName}
|
|||
|
|
AND (
|
|||
|
|
(tag_name = #{tagName} AND #{tagName} IS NOT NULL AND #{tagName} != '')
|
|||
|
|
OR (tag_name IS NULL AND (#{tagName} IS NULL OR #{tagName} = ''))
|
|||
|
|
)
|
|||
|
|
</select>
|
|||
|
|
|
|||
|
|
<!-- 查询组级数据列表 -->
|
|||
|
|
<select id="selectGroupLevelList" resultMap="BaseResultMap">
|
|||
|
|
SELECT <include refid="Base_Column_List"/>
|
|||
|
|
FROM customer_statistics_data_v2
|
|||
|
|
WHERE corp_id = #{corpId}
|
|||
|
|
AND data_level = 1
|
|||
|
|
<if test="startDate != null">
|
|||
|
|
AND cur_date >= #{startDate}
|
|||
|
|
</if>
|
|||
|
|
<if test="endDate != null">
|
|||
|
|
AND cur_date <= #{endDate}
|
|||
|
|
</if>
|
|||
|
|
ORDER BY cur_date DESC, sort_no, group_name
|
|||
|
|
</select>
|
|||
|
|
|
|||
|
|
<!-- 查询标签级数据列表 -->
|
|||
|
|
<select id="selectTagLevelList" resultMap="BaseResultMap">
|
|||
|
|
SELECT <include refid="Base_Column_List"/>
|
|||
|
|
FROM customer_statistics_data_v2
|
|||
|
|
WHERE corp_id = #{corpId}
|
|||
|
|
AND data_level = 2
|
|||
|
|
<if test="startDate != null">
|
|||
|
|
AND cur_date >= #{startDate}
|
|||
|
|
</if>
|
|||
|
|
<if test="endDate != null">
|
|||
|
|
AND cur_date <= #{endDate}
|
|||
|
|
</if>
|
|||
|
|
<if test="groupName != null and groupName != ''">
|
|||
|
|
AND group_name = #{groupName}
|
|||
|
|
</if>
|
|||
|
|
ORDER BY cur_date DESC, group_name, tag_name
|
|||
|
|
</select>
|
|||
|
|
|
|||
|
|
<!-- 根据企业ID、日期、组名查询组级数据 -->
|
|||
|
|
<select id="selectGroupLevelByCorpDateGroup" resultMap="BaseResultMap">
|
|||
|
|
SELECT <include refid="Base_Column_List"/>
|
|||
|
|
FROM customer_statistics_data_v2
|
|||
|
|
WHERE corp_id = #{corpId}
|
|||
|
|
AND cur_date = #{curDate}
|
|||
|
|
AND group_name = #{groupName}
|
|||
|
|
AND data_level = 1
|
|||
|
|
</select>
|
|||
|
|
|
|||
|
|
<!-- 根据企业ID、日期、组名查询标签级数据列表 -->
|
|||
|
|
<select id="selectTagLevelByCorpDateGroup" resultMap="BaseResultMap">
|
|||
|
|
SELECT <include refid="Base_Column_List"/>
|
|||
|
|
FROM customer_statistics_data_v2
|
|||
|
|
WHERE corp_id = #{corpId}
|
|||
|
|
AND cur_date = #{curDate}
|
|||
|
|
AND group_name = #{groupName}
|
|||
|
|
AND data_level = 2
|
|||
|
|
ORDER BY tag_name
|
|||
|
|
</select>
|
|||
|
|
|
|||
|
|
<!-- 批量插入数据 -->
|
|||
|
|
<insert id="batchInsert">
|
|||
|
|
INSERT INTO customer_statistics_data_v2 (
|
|||
|
|
corp_id, cur_date, group_name, tag_name, tag_group_id, tag_id, data_level, parent_id,
|
|||
|
|
total_cost, single_cost, order_cost, cost_input_type,
|
|||
|
|
order_count, customer_count, timely_order_count, non_timely_order_count,
|
|||
|
|
conversion_rate, timely_rate, non_timely_rate,
|
|||
|
|
customer_attr_count, parent_count, student_count, teacher_count, unknown_attr_count,
|
|||
|
|
parent_rate, student_rate, teacher_rate, unknown_rate,
|
|||
|
|
parent_order_count, student_order_count, teacher_order_count, unknown_order_count,
|
|||
|
|
parent_daily_count, student_daily_count, teacher_daily_count, unknown_daily_count,
|
|||
|
|
parent_daily_order_count, student_daily_order_count, teacher_daily_order_count, unknown_daily_order_count,
|
|||
|
|
parent_order_rate, student_order_rate, teacher_order_rate, unknown_order_rate,
|
|||
|
|
intention_count, active_quote_count, passive_quote_count, no_quote_count, deleted_quote_count,
|
|||
|
|
active_quote_rate, passive_quote_rate, no_quote_rate, deleted_quote_rate,
|
|||
|
|
grade_count, primary_count, middle_count, high_count,
|
|||
|
|
primary_rate, middle_rate, high_rate,
|
|||
|
|
sort_no
|
|||
|
|
) VALUES
|
|||
|
|
<foreach collection="list" item="item" separator=",">
|
|||
|
|
(
|
|||
|
|
#{item.corpId}, #{item.curDate}, #{item.groupName}, #{item.tagName}, #{item.tagGroupId}, #{item.tagId},
|
|||
|
|
#{item.dataLevel}, #{item.parentId},
|
|||
|
|
#{item.totalCost}, #{item.singleCost}, #{item.orderCost}, #{item.costInputType},
|
|||
|
|
#{item.orderCount}, #{item.customerCount}, #{item.timelyOrderCount}, #{item.nonTimelyOrderCount},
|
|||
|
|
#{item.conversionRate}, #{item.timelyRate}, #{item.nonTimelyRate},
|
|||
|
|
#{item.customerAttrCount}, #{item.parentCount}, #{item.studentCount}, #{item.teacherCount}, #{item.unknownAttrCount},
|
|||
|
|
#{item.parentRate}, #{item.studentRate}, #{item.teacherRate}, #{item.unknownRate},
|
|||
|
|
#{item.parentOrderCount}, #{item.studentOrderCount}, #{item.teacherOrderCount}, #{item.unknownOrderCount},
|
|||
|
|
#{item.parentDailyCount}, #{item.studentDailyCount}, #{item.teacherDailyCount}, #{item.unknownDailyCount},
|
|||
|
|
#{item.parentDailyOrderCount}, #{item.studentDailyOrderCount}, #{item.teacherDailyOrderCount}, #{item.unknownDailyOrderCount},
|
|||
|
|
#{item.parentOrderRate}, #{item.studentOrderRate}, #{item.teacherOrderRate}, #{item.unknownOrderRate},
|
|||
|
|
#{item.intentionCount}, #{item.activeQuoteCount}, #{item.passiveQuoteCount}, #{item.noQuoteCount}, #{item.deletedQuoteCount},
|
|||
|
|
#{item.activeQuoteRate}, #{item.passiveQuoteRate}, #{item.noQuoteRate}, #{item.deletedQuoteRate},
|
|||
|
|
#{item.gradeCount}, #{item.primaryCount}, #{item.middleCount}, #{item.highCount},
|
|||
|
|
#{item.primaryRate}, #{item.middleRate}, #{item.highRate},
|
|||
|
|
#{item.sortNo}
|
|||
|
|
)
|
|||
|
|
</foreach>
|
|||
|
|
</insert>
|
|||
|
|
|
|||
|
|
<!-- 删除指定日期范围的数据 -->
|
|||
|
|
<delete id="deleteByDateRange">
|
|||
|
|
DELETE FROM customer_statistics_data_v2
|
|||
|
|
WHERE corp_id = #{corpId}
|
|||
|
|
<if test="startDate != null">
|
|||
|
|
AND cur_date >= #{startDate}
|
|||
|
|
</if>
|
|||
|
|
<if test="endDate != null">
|
|||
|
|
AND cur_date <= #{endDate}
|
|||
|
|
</if>
|
|||
|
|
</delete>
|
|||
|
|
|
|||
|
|
<!-- 查询树状结构数据(组+标签) -->
|
|||
|
|
<select id="selectTreeData" resultMap="BaseResultMap">
|
|||
|
|
SELECT <include refid="Base_Column_List"/>
|
|||
|
|
FROM customer_statistics_data_v2
|
|||
|
|
WHERE corp_id = #{corpId}
|
|||
|
|
<if test="startDate != null">
|
|||
|
|
AND cur_date >= #{startDate}
|
|||
|
|
</if>
|
|||
|
|
<if test="endDate != null">
|
|||
|
|
AND cur_date <= #{endDate}
|
|||
|
|
</if>
|
|||
|
|
ORDER BY data_level, group_name, tag_name
|
|||
|
|
</select>
|
|||
|
|
|
|||
|
|
<!-- 根据筛选条件查询数据列表(支持按组、标签筛选) -->
|
|||
|
|
<select id="selectListByFilter" resultMap="BaseResultMap">
|
|||
|
|
SELECT <include refid="Base_Column_List"/>
|
|||
|
|
FROM customer_statistics_data_v2
|
|||
|
|
WHERE corp_id = #{corpId}
|
|||
|
|
<if test="startDate != null">
|
|||
|
|
AND cur_date >= #{startDate}
|
|||
|
|
</if>
|
|||
|
|
<if test="endDate != null">
|
|||
|
|
AND cur_date <= #{endDate}
|
|||
|
|
</if>
|
|||
|
|
<if test="groupName != null and groupName != ''">
|
|||
|
|
AND group_name = #{groupName}
|
|||
|
|
</if>
|
|||
|
|
<if test="tagName != null and tagName != ''">
|
|||
|
|
AND tag_name = #{tagName}
|
|||
|
|
</if>
|
|||
|
|
ORDER BY cur_date DESC, data_level ASC, group_name ASC, sort_no ASC
|
|||
|
|
</select>
|
|||
|
|
|
|||
|
|
<!-- 按日期范围聚合查询(支持按组、标签筛选) -->
|
|||
|
|
<!-- 注意:比率指标需要在Java层重新计算,SQL只聚合数量指标 -->
|
|||
|
|
<select id="selectAggregatedByDateRange" resultMap="BaseResultMap">
|
|||
|
|
SELECT
|
|||
|
|
NULL as id,
|
|||
|
|
#{corpId} as corp_id,
|
|||
|
|
MAX(cur_date) as cur_date,
|
|||
|
|
group_name,
|
|||
|
|
tag_name,
|
|||
|
|
NULL as parent_id,
|
|||
|
|
MIN(sort_no) as sort_no,
|
|||
|
|
data_level,
|
|||
|
|
SUM(order_count) as order_count,
|
|||
|
|
SUM(customer_count) as customer_count,
|
|||
|
|
SUM(customer_attr_count) as customer_attr_count,
|
|||
|
|
SUM(parent_count) as parent_count,
|
|||
|
|
SUM(student_count) as student_count,
|
|||
|
|
SUM(teacher_count) as teacher_count,
|
|||
|
|
SUM(unknown_attr_count) as unknown_attr_count,
|
|||
|
|
SUM(timely_order_count) as timely_order_count,
|
|||
|
|
SUM(non_timely_order_count) as non_timely_order_count,
|
|||
|
|
NULL as conversion_rate,
|
|||
|
|
NULL as timely_rate,
|
|||
|
|
NULL as non_timely_rate,
|
|||
|
|
NULL as parent_rate,
|
|||
|
|
NULL as student_rate,
|
|||
|
|
NULL as teacher_rate,
|
|||
|
|
NULL as unknown_rate,
|
|||
|
|
SUM(total_cost) as total_cost,
|
|||
|
|
NULL as single_cost,
|
|||
|
|
NULL as order_cost,
|
|||
|
|
SUM(intention_count) as intention_count,
|
|||
|
|
SUM(active_quote_count) as active_quote_count,
|
|||
|
|
SUM(passive_quote_count) as passive_quote_count,
|
|||
|
|
SUM(no_quote_count) as no_quote_count,
|
|||
|
|
SUM(deleted_quote_count) as deleted_quote_count,
|
|||
|
|
NULL as active_quote_rate,
|
|||
|
|
NULL as passive_quote_rate,
|
|||
|
|
NULL as no_quote_rate,
|
|||
|
|
NULL as deleted_quote_rate,
|
|||
|
|
SUM(grade_count) as grade_count,
|
|||
|
|
SUM(primary_count) as primary_count,
|
|||
|
|
SUM(middle_count) as middle_count,
|
|||
|
|
SUM(high_count) as high_count,
|
|||
|
|
NULL as primary_rate,
|
|||
|
|
NULL as middle_rate,
|
|||
|
|
NULL as high_rate,
|
|||
|
|
SUM(parent_order_count) as parent_order_count,
|
|||
|
|
SUM(student_order_count) as student_order_count,
|
|||
|
|
SUM(teacher_order_count) as teacher_order_count,
|
|||
|
|
SUM(unknown_order_count) as unknown_order_count,
|
|||
|
|
SUM(parent_daily_count) as parent_daily_count,
|
|||
|
|
SUM(student_daily_count) as student_daily_count,
|
|||
|
|
SUM(teacher_daily_count) as teacher_daily_count,
|
|||
|
|
SUM(unknown_daily_count) as unknown_daily_count,
|
|||
|
|
SUM(parent_daily_order_count) as parent_daily_order_count,
|
|||
|
|
SUM(student_daily_order_count) as student_daily_order_count,
|
|||
|
|
SUM(teacher_daily_order_count) as teacher_daily_order_count,
|
|||
|
|
SUM(unknown_daily_order_count) as unknown_daily_order_count,
|
|||
|
|
NULL as parent_order_rate,
|
|||
|
|
NULL as student_order_rate,
|
|||
|
|
NULL as teacher_order_rate,
|
|||
|
|
NULL as unknown_order_rate
|
|||
|
|
FROM customer_statistics_data_v2
|
|||
|
|
WHERE corp_id = #{corpId}
|
|||
|
|
<choose>
|
|||
|
|
<when test="tagName != null and tagName != ''">
|
|||
|
|
AND data_level = 2
|
|||
|
|
</when>
|
|||
|
|
<otherwise>
|
|||
|
|
AND data_level = 1
|
|||
|
|
</otherwise>
|
|||
|
|
</choose>
|
|||
|
|
<if test="startDate != null">
|
|||
|
|
AND cur_date >= #{startDate}
|
|||
|
|
</if>
|
|||
|
|
<if test="endDate != null">
|
|||
|
|
AND cur_date <= #{endDate}
|
|||
|
|
</if>
|
|||
|
|
<if test="groupName != null and groupName != ''">
|
|||
|
|
AND group_name = #{groupName}
|
|||
|
|
</if>
|
|||
|
|
<if test="tagName != null and tagName != ''">
|
|||
|
|
AND tag_name = #{tagName}
|
|||
|
|
</if>
|
|||
|
|
GROUP BY group_name, tag_name, data_level
|
|||
|
|
ORDER BY group_name ASC, tag_name ASC, data_level ASC, MIN(sort_no) ASC
|
|||
|
|
</select>
|
|||
|
|
|
|||
|
|
<!-- 查询所有数据并聚合(支持按组、标签筛选) -->
|
|||
|
|
<!-- 注意:比率指标需要在Java层重新计算,SQL只聚合数量指标 -->
|
|||
|
|
<select id="selectAllAggregated" resultMap="BaseResultMap">
|
|||
|
|
SELECT
|
|||
|
|
NULL as id,
|
|||
|
|
#{corpId} as corp_id,
|
|||
|
|
MAX(cur_date) as cur_date,
|
|||
|
|
group_name,
|
|||
|
|
tag_name,
|
|||
|
|
NULL as parent_id,
|
|||
|
|
MIN(sort_no) as sort_no,
|
|||
|
|
data_level,
|
|||
|
|
SUM(order_count) as order_count,
|
|||
|
|
SUM(customer_count) as customer_count,
|
|||
|
|
SUM(customer_attr_count) as customer_attr_count,
|
|||
|
|
SUM(parent_count) as parent_count,
|
|||
|
|
SUM(student_count) as student_count,
|
|||
|
|
SUM(teacher_count) as teacher_count,
|
|||
|
|
SUM(unknown_attr_count) as unknown_attr_count,
|
|||
|
|
SUM(timely_order_count) as timely_order_count,
|
|||
|
|
SUM(non_timely_order_count) as non_timely_order_count,
|
|||
|
|
NULL as conversion_rate,
|
|||
|
|
NULL as timely_rate,
|
|||
|
|
NULL as non_timely_rate,
|
|||
|
|
NULL as parent_rate,
|
|||
|
|
NULL as student_rate,
|
|||
|
|
NULL as teacher_rate,
|
|||
|
|
NULL as unknown_rate,
|
|||
|
|
SUM(total_cost) as total_cost,
|
|||
|
|
NULL as single_cost,
|
|||
|
|
NULL as order_cost,
|
|||
|
|
SUM(intention_count) as intention_count,
|
|||
|
|
SUM(active_quote_count) as active_quote_count,
|
|||
|
|
SUM(passive_quote_count) as passive_quote_count,
|
|||
|
|
SUM(no_quote_count) as no_quote_count,
|
|||
|
|
SUM(deleted_quote_count) as deleted_quote_count,
|
|||
|
|
NULL as active_quote_rate,
|
|||
|
|
NULL as passive_quote_rate,
|
|||
|
|
NULL as no_quote_rate,
|
|||
|
|
NULL as deleted_quote_rate,
|
|||
|
|
SUM(grade_count) as grade_count,
|
|||
|
|
SUM(primary_count) as primary_count,
|
|||
|
|
SUM(middle_count) as middle_count,
|
|||
|
|
SUM(high_count) as high_count,
|
|||
|
|
NULL as primary_rate,
|
|||
|
|
NULL as middle_rate,
|
|||
|
|
NULL as high_rate,
|
|||
|
|
SUM(parent_order_count) as parent_order_count,
|
|||
|
|
SUM(student_order_count) as student_order_count,
|
|||
|
|
SUM(teacher_order_count) as teacher_order_count,
|
|||
|
|
SUM(unknown_order_count) as unknown_order_count,
|
|||
|
|
SUM(parent_daily_count) as parent_daily_count,
|
|||
|
|
SUM(student_daily_count) as student_daily_count,
|
|||
|
|
SUM(teacher_daily_count) as teacher_daily_count,
|
|||
|
|
SUM(unknown_daily_count) as unknown_daily_count,
|
|||
|
|
SUM(parent_daily_order_count) as parent_daily_order_count,
|
|||
|
|
SUM(student_daily_order_count) as student_daily_order_count,
|
|||
|
|
SUM(teacher_daily_order_count) as teacher_daily_order_count,
|
|||
|
|
SUM(unknown_daily_order_count) as unknown_daily_order_count,
|
|||
|
|
NULL as parent_order_rate,
|
|||
|
|
NULL as student_order_rate,
|
|||
|
|
NULL as teacher_order_rate,
|
|||
|
|
NULL as unknown_order_rate
|
|||
|
|
FROM customer_statistics_data_v2
|
|||
|
|
WHERE corp_id = #{corpId}
|
|||
|
|
<choose>
|
|||
|
|
<when test="tagName != null and tagName != ''">
|
|||
|
|
AND data_level = 2
|
|||
|
|
</when>
|
|||
|
|
<otherwise>
|
|||
|
|
AND data_level = 1
|
|||
|
|
</otherwise>
|
|||
|
|
</choose>
|
|||
|
|
<if test="groupName != null and groupName != ''">
|
|||
|
|
AND group_name = #{groupName}
|
|||
|
|
</if>
|
|||
|
|
<if test="tagName != null and tagName != ''">
|
|||
|
|
AND tag_name = #{tagName}
|
|||
|
|
</if>
|
|||
|
|
GROUP BY group_name, tag_name, data_level
|
|||
|
|
ORDER BY group_name ASC, tag_name ASC, data_level ASC, MIN(sort_no) ASC
|
|||
|
|
</select>
|
|||
|
|
|
|||
|
|
</mapper>
|