计算占比时需要统计全量来求占比
with table_a AS(
SELECT
CITY AS 地市,COUNTY AS 区县,GRID_NAME AS 网格,
customer_account AS 业务号码,
boss_order AS BOSS工单号码,
install_address AS 安装地址,
applicant AS 申请人,
applicant_date AS 申请时间,
applicant_reason AS 申请原因,
apply_kn AS 申请困难场景,
pro_kn AS 审批困难场景,
APPLY_STATE_NAME AS 审批状态,
approval_result AS 审批结果,
approval_opinion AS 审批描述,
CASE WHEN INSTR(a.approval_opinion, '复杂')>0 THEN '复杂'
WHEN INSTR(a.approval_opinion, '简单')>0 THEN '简单'
ELSE NULL END AS 审核后困难施工场景,
CASE WHEN INSTR(a.applicant_reason, '铺')>0 THEN '是'
ELSE NULL END AS 是否商铺
FROM a
WHERE $[to_char(applicant_date, 'YYYY-MM-DD') >= '${开始时间}'] AND $[to_char(applicant_date, 'YYYY-MM-DD') <= '${结束时间}']
) ,
table_tj_nn AS(
SELECT 地市,COUNT(*) AS 月发起工单,NULL AS 占比,SUM(CASE WHEN 是否商铺='是' THEN 1 ELSE 0 END) AS "其中:商铺",
COUNT(*) AS "其中:",SUM(CASE WHEN 审批状态='已审批' THEN 1 ELSE 0 END) AS 月已审核工单,
NULL AS 困难装机审核情况已审核工单占比,
SUM(CASE WHEN 审批状态='已审批' AND 审批结果='通过' THEN 1 ELSE 0 END) AS 未通过,
NULL AS 困难装机审核情况未通过工单占比,
SUM(CASE WHEN 审批状态='已审批' AND 审批结果='不通过' THEN 1 ELSE 0 END) AS 已通过,
NULL AS 困难装机审核情况已通过工单占比,
SUM(CASE WHEN 审批状态='已审批' AND 审批结果='不通过' AND 审核后困难施工场景='复杂' THEN 1 ELSE 0 END) AS "其中:复杂场景",
SUM(CASE WHEN 审批状态='已审批' AND 审批结果='不通过' AND 审核后困难施工场景='简单' THEN 1 ELSE 0 END) AS "其中:简单场景",
SUM(CASE WHEN 审批状态='已审批' AND 审批结果='不通过' AND 审核后困难施工场景 IS NULL THEN 1 ELSE 0 END) AS "其中:未备注场景"
FROM table_a WHERE 地市='宁' GROUP BY 地市
),
table_tj_result AS (
SELECT t1.地市, t1.月发起工单, t1.占比, t1."其中:商铺", t1."其中:", t1.月已审核工单,
ROUND(t1.月已审核工单 / t2."月工单", 9) AS 困难装机审核情况已审核工单占比,
t1.未通过, ROUND(t1.未通过 / t2."月工单", 9) AS 困难装机审核情况未通过工单占比,
t1.已通过, ROUND(t1.已通过 / t2."月工单", 9) AS 困难装机审核情况已通过工单占比,
t1."其中:复杂场景", t1."其中:简单场景", t1."其中:未备注场景"
FROM table_tj_nn t1
INNER JOIN (
SELECT COUNT(*) AS "月工单"
FROM table_a t2
) t2 ON 1=1
)
SELECT a.* FROM table_tj_result a
计算占比时不需要统计全量来求占比
with table_a AS(
SELECT
CITY AS 地市,COUNTY AS 区县,GRID_NAME AS 网格,
customer_account AS 业务号码,
boss_order AS BOSS工单号码,
install_address AS 安装地址,
applicant AS 申请人,
applicant_date AS 申请时间,
applicant_reason AS 申请原因,
apply_kn AS 申请困难场景,
pro_kn AS 审批困难场景,
APPLY_STATE_NAME AS 审批状态,
approval_result AS 审批结果,
approval_opinion AS 审批描述,
CASE WHEN INSTR(a.approval_opinion, '复杂')>0 THEN '复杂'
WHEN INSTR(a.approval_opinion, '简单')>0 THEN '简单'
ELSE NULL END AS 审核后困难施工场景,
CASE WHEN INSTR(a.applicant_reason, '铺')>0 THEN '是'
ELSE NULL END AS 是否商铺
FROM jk_knzj_diffic_install a
WHERE $[to_char(applicant_date, 'YYYY-MM-DD') >= '${开始时间}'] AND $[to_char(applicant_date, 'YYYY-MM-DD') <= '${结束时间}']
) ,
table_tj_nn AS(
SELECT 地市,COUNT(*) AS 月发起工单,NULL AS 占比,SUM(CASE WHEN 是否商铺='是' THEN 1 ELSE 0 END) AS "其中:商铺",
COUNT(*) AS "其中:",SUM(CASE WHEN 审批状态='已审批' THEN 1 ELSE 0 END) AS 月已审核工单,
NULL AS 困难装机审核情况已审核工单占比,
SUM(CASE WHEN 审批状态='已审批' AND 审批结果='通过' THEN 1 ELSE 0 END) AS 未通过,
NULL AS 困难装机审核情况未通过工单占比,
SUM(CASE WHEN 审批状态='已审批' AND 审批结果='不通过' THEN 1 ELSE 0 END) AS 已通过,
NULL AS 困难装机审核情况已通过工单占比,
SUM(CASE WHEN 审批状态='已审批' AND 审批结果='不通过' AND 审核后困难施工场景='复杂' THEN 1 ELSE 0 END) AS "其中:复杂场景",
SUM(CASE WHEN 审批状态='已审批' AND 审批结果='不通过' AND 审核后困难施工场景='简单' THEN 1 ELSE 0 END) AS "其中:简单场景",
SUM(CASE WHEN 审批状态='已审批' AND 审批结果='不通过' AND 审核后困难施工场景 IS NULL THEN 1 ELSE 0 END) AS "其中:未备注场景"
FROM table_a WHERE 地市='宁' GROUP BY 地市
),
table_tj_result AS (
SELECT t1.地市, t1.月发起工单, t1.占比, t1."其中:商铺", t1."其中:", t1.月已审核工单,
ROUND(t1.月已审核工单 / t2."月工单", 9) AS 困难装机审核情况已审核工单占比,
t1.未通过, ROUND(t1.未通过 / t2."月工单", 9) AS 困难装机审核情况未通过工单占比,
t1.已通过, ROUND(t1.已通过 / t2."月工单", 9) AS 困难装机审核情况已通过工单占比,
t1."其中:复杂场景", t1."其中:简单场景", t1."其中:未备注场景"
FROM table_tj_nn t1
INNER JOIN (
SELECT SUM("其中:") AS "月工单"
FROM table_tj_nn t2
) t2 ON 1=1
)
SELECT a.* FROM table_tj_result a