这是一个 Data Explorer SQL 查询,旨在深入了解论坛版主处理用户在帖子中提出的标记的效率和响应能力。
本报告显示了在指定日期范围内,每个版主处理的标记数量以及解决标记的平均时间。
了解版主响应标记的速度和有效性,可以帮助管理员确保论坛对所有用户来说都是一个安全且受欢迎的空间。
-- [params]
-- date :start_date = 2023-01-01
-- date :end_date = 2024-01-01
WITH period_actions AS (
SELECT pa.id,
pa.post_action_type_id,
pa.created_at,
pa.agreed_at,
pa.disagreed_at,
pa.deferred_at,
pa.agreed_by_id,
pa.disagreed_by_id,
pa.deferred_by_id,
pa.post_id,
pa.user_id,
COALESCE(pa.disagreed_at, pa.agreed_at, pa.deferred_at) AS responded_at,
EXTRACT(EPOCH FROM (COALESCE(pa.disagreed_at, pa.agreed_at, pa.deferred_at) - pa.created_at)) / 60 AS time_to_resolution_minutes -- time to resolution in minutes
FROM post_actions pa
WHERE pa.post_action_type_id IN (3,4,6,7,8) -- Flag types
AND pa.created_at >= :start_date
AND pa.created_at <= :end_date
),
moderator_actions AS (
SELECT pa.id,
pa.post_id,
pa.created_at,
pa.responded_at,
pa.time_to_resolution_minutes,
COALESCE(pa.agreed_by_id, pa.disagreed_by_id, pa.deferred_by_id) AS moderator_id
FROM period_actions pa
WHERE COALESCE(pa.agreed_by_id, pa.disagreed_by_id, pa.deferred_by_id) IS NOT NULL
),
moderator_stats AS (
SELECT
m.moderator_id,
u.username AS moderator_username,
COUNT(m.id) AS handled_flags,
AVG(m.time_to_resolution_minutes) AS avg_resolution_time_minutes
FROM moderator_actions m
JOIN users u ON u.id = m.moderator_id
GROUP BY m.moderator_id, u.username
)
SELECT
ms.moderator_username,
ms.handled_flags,
ROUND(ms.avg_resolution_time_minutes::numeric, 2) AS avg_resolution_time_minutes
FROM moderator_stats ms
ORDER BY ms.handled_flags DESC, ms.avg_resolution_time_minutes ASC
SQL 查询说明
参数
该查询使用两个参数来定义要分析数据的时间范围:
:start_date:要分析期间的开始日期,格式为YYYY-MM-DD。:end_date:要分析期间的结束日期,格式也为YYYY-MM-DD。
CTE 说明
- period_actions:此 CTE 选择指定时间段内提出的标记,重点关注特定的标记类型。它计算从标记创建到版主同意、不同意或推迟标记(以分钟为单位)的解决时间。
- moderator_actions:此 CTE 过滤来自
period_actions的操作,仅包括由版主响应的操作。它识别负责每个操作的版主。 - moderator_stats:此 CTE 聚合来自
moderator_actions的数据,计算每个版主处理的标记总数以及他们处理的标记的平均解决时间(以分钟为单位)。
结果
查询的最终输出提供了一个按处理标记数量排序的版主列表,并按平均解决时间(升序)进行次要排序。对于每个版主,报告显示:
moderator_username:版主的用户名。handled_flags:版主在指定时间段内处理的标记总数。avg_resolution_time_minutes:版主解决标记的平均时间,四舍五入到小数点后两位。
示例结果
| moderator_username | handled_flags | avg_resolution_time_minutes |
|---|---|---|
| Moderator1 | 343 | 39.41 |
| Moderator2 | 70 | 30.51 |
| Moderator3 | 63 | 42.21 |