用sql语句写下:2018年9月投诉类型前5名占比分析 数据源:dm_tslx:投诉问题汇总、dw_complain_tslx:投诉类型
时间: 2024-10-15 10:24:49 浏览: 20
首先,你需要从两个表`dm_tslx`(投诉问题汇总)和`dw_complain_tslx`(投诉类型)中获取相关的数据。假设`dm_tslx`表有一个字段`complaint_type`表示投诉类型,`complaint_date`表示投诉日期,而`dw_complain_tslx`表有`type_id`作为投诉类型的唯一标识,我们可以使用SQL的`GROUP BY`, `COUNT()`, 和 `JOIN` 来完成这个分析。
```sql
SELECT
dw_complain_tslx.type_id AS 投诉类型,
COUNT(*) AS 总投诉次数,
SUM(CASE WHEN YEAR(dm_tslx.complaint_date) = 2018 AND MONTH(dm_tslx.complaint_date) = 9 THEN 1 ELSE 0 END) AS 2018年9月投诉次数,
(SUM(CASE WHEN YEAR(dm_tslx.complaint_date) = 2018 AND MONTH(dm_tslx.complaint_date) = 9 THEN 1 ELSE 0 END) / COUNT(*)) * 100 AS 2018年9月占比
FROM
dm_tslx
JOIN
dw_complain_tslx ON dm_tslx.type_id = dw_complain_tslx.type_id
WHERE
dm_tslx.complaint_date BETWEEN '2018-01' AND '2018-09-30'
GROUP BY
dw_complain_tslx.type_id
ORDER BY
2018年9月投诉次数 DESC
LIMIT 5;
```
这个查询首先将两个表通过投诉类型关联起来,然后筛选出2018年9月份的数据,并计算每种类型的总投诉次数以及在这个时间段内的投诉次数。最后,它按2018年9月的投诉次数降序排序,并取前5名,同时计算出每个类型的占比。
阅读全文