Effizienzbericht zur Moderator-Flag-Bearbeitung

Diese Data Explorer SQL-Abfrage soll Einblicke in die Effizienz und Reaktionsfähigkeit von Forenmoderatoren bei der Bearbeitung von von Benutzern gemeldeten Beiträgen geben.

Dieser Bericht zeigt die Anzahl der bearbeiteten Meldungen und die durchschnittliche Zeit zur Lösung von Meldungen durch jeden Moderator auf einer Website innerhalb eines bestimmten Zeitraums.

Das Verständnis, wie schnell und effektiv Moderatoren auf Meldungen reagieren, kann Administratoren helfen, sicherzustellen, dass das Forum ein sicherer und einladender Ort für alle Benutzer bleibt.

-- [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 -- Zeit bis zur Lösung in Minuten
    FROM post_actions pa
    WHERE pa.post_action_type_id IN (3,4,6,7,8) -- Meldungstypen
      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-Abfrageerklärung

Parameter

Die Abfrage verwendet zwei Parameter, um den zu analysierenden Zeitraum zu definieren:

  • :start_date: Das Startdatum des zu analysierenden Zeitraums im Format JJJJ-MM-TT.
  • :end_date: Das Enddatum des zu analysierenden Zeitraums, ebenfalls im Format JJJJ-MM-TT.

CTEs erklärt

  • period_actions: Diese CTE wählt innerhalb des angegebenen Zeitraums gemeldete Meldungen aus und konzentriert sich auf bestimmte Meldungstypen. Sie berechnet die Zeit, die für die Lösung jeder Meldung (in Minuten) benötigt wird, ab dem Zeitpunkt ihrer Erstellung bis zur Zustimmung, Ablehnung oder Vertagung durch einen Moderator.
  • moderator_actions: Diese CTE filtert die Aktionen aus period_actions, um nur diejenigen einzuschließen, auf die von einem Moderator reagiert wurde. Sie identifiziert den für jede Aktion verantwortlichen Moderator.
  • moderator_stats: Diese CTE aggregiert die Daten aus moderator_actions und berechnet die Gesamtzahl der von jedem Moderator bearbeiteten Meldungen sowie die durchschnittliche Lösungszeit (in Minuten) für die von ihnen bearbeiteten Meldungen.

Ergebnisse

Die endgültige Ausgabe der Abfrage liefert eine Liste von Moderatoren, sortiert nach der Anzahl der von ihnen bearbeiteten Meldungen, mit einer sekundären Sortierung nach ihrer durchschnittlichen Lösungszeit (aufsteigend). Für jeden Moderator zeigt der Bericht:

  • moderator_username: Der Benutzername des Moderators.
  • handled_flags: Die Gesamtzahl der vom Moderator innerhalb des angegebenen Zeitraums bearbeiteten Meldungen.
  • avg_resolution_time_minutes: Die durchschnittliche Zeit, die der Moderator benötigt, um eine Meldung zu lösen, gerundet auf zwei Dezimalstellen.

Beispielergebnisse

moderator_username handled_flags avg_resolution_time_minutes
Moderator1 343 39.41
Moderator2 70 30.51
Moderator3 63 42.21