# Dashboard-Bericht - Benutzer-Melde-Verhältnis

**URL:** <https://meta.discourse.org/t/dashboard-report-user-flagging-ratio/294442>\
**Category:** Data & reporting\
**Tags:** sql-query, dashboard-reports, dashboard-sql\
**Created:** [6. Februar 2024 um 23:17 UTC](https://meta.discourse.org/t/dashboard-report-user-flagging-ratio/294442 "2024-02-06T23:17:32Z")\
**Posts on this page:** 1\
**Showing post:** 1

<div class="post-metadata">

**Author:** ![SaraDev](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/saradev/32/335139_2.png) [@SaraDev](https://meta.discourse.org/u/SaraDev)\
**Post date:** [6. Februar 2024 um 23:17 UTC](https://meta.discourse.org/t/dashboard-report-user-flagging-ratio/294442/1 "2024-02-06T23:17:32Z")

</div>

Dies ist eine SQL-Version des Dashboard-Berichts für das Verhältnis der Benutzerkennzeichnungen.

Dieser Dashboard-Bericht generiert eine Liste von Benutzern, geordnet nach dem Verhältnis der Antworten des Personals auf ihre Kennzeichnungen (zugestimmt und abgelehnt). Der Bericht enthält Informationen über die Kennzeichnungsaktivität jedes Benutzers, insbesondere über die Anzahl der Kennzeichnungen, denen von Moderatoren zugestimmt, die abgelehnt oder ignoriert wurden, sowie eine berechnete Punktzahl, die die Leistung des Benutzers bei der Kennzeichnung darstellt.

Der Bericht ist nützlich für Administratoren, um Benutzer zu identifizieren, die unangemessene Inhalte korrekt kennzeichnen, das Engagement der Benutzer bei der Community-Moderation einzuschätzen, Feedback zu Kennzeichnungspraktiken zu geben und die Leistung der Benutzer bei der Kennzeichnung für potenzielle Moderatorenrollen zu bewerten.

```sql
-- [params]
-- date :start_date = 2024-01-01
-- date :end_date = 2024-02-01

SELECT
  u.id AS user_id,
  u.username,
  CASE
    WHEN u.silenced_till IS NOT NULL THEN 't'
    ELSE 'f'
  END AS silenced,
  SUM(CASE WHEN rs.status = 2 THEN 1 ELSE 0 END)::numeric AS disagreed_flags,
  SUM(CASE WHEN rs.status = 1 THEN 1 ELSE 0 END)::numeric AS agreed_flags,
  SUM(CASE WHEN rs.status = 3 THEN 1 ELSE 0 END)::numeric AS ignored_flags,
  (
    CASE
      WHEN SUM(CASE WHEN rs.status = 2 THEN 1 ELSE 0 END)::numeric = 0 THEN
        SUM(CASE WHEN rs.status = 1 THEN 1 ELSE 0 END)::numeric * SUM(CASE WHEN rs.status = 1 THEN 1 ELSE 0 END)::numeric
      ELSE
        ROUND(
          (1 - (SUM(CASE WHEN rs.status = 1 THEN 1 ELSE 0 END)::numeric / SUM(CASE WHEN rs.status = 2 THEN 1 ELSE 0 END))) *
          (SUM(CASE WHEN rs.status = 2 THEN 1 ELSE 0 END) - SUM(CASE WHEN rs.status = 1 THEN 1 ELSE 0 END)::numeric)
        )
    END
  ) AS score
FROM
  users AS u
  INNER JOIN reviewable_scores AS rs ON rs.user_id = u.id
WHERE
  u.id > 0
  AND rs.created_at >= :start_date
  AND rs.created_at <= :end_date
GROUP BY
  u.id,
  u.username,
  u.uploaded_avatar_id,
  u.silenced_till
ORDER BY
  score DESC
LIMIT 100

```

### SQL-Abfrageerklärung

Hier ist eine Aufschlüsselung der Abfrage:

- **Parameter** : Die Abfrage akzeptiert zwei Parameter, `:start_date` und `:end_date`, mit denen der Benutzer den Datumsbereich für den Bericht festlegen kann. Beide Datumsparameter akzeptieren das Datumsformat `JJJJ-MM-TT`.
- **SELECT-Klausel** : Die Abfrage wählt die folgenden Spalten aus:
  - `user_id`: Die eindeutige Kennung des Benutzers.
  - `username`: Der Benutzername des Benutzers.
  - `silenced`: Ein boolescher Wert, der angibt, ob der Benutzer derzeit stummgeschaltet ist.
  - `disagreed_flags`: Die Gesamtzahl der Benutzerkennzeichnungen, denen von Moderatoren widersprochen wurde.
  - `agreed_flags`: Die Gesamtzahl der Benutzerkennzeichnungen, denen von Moderatoren zugestimmt wurde.
  - `ignored_flags`: Die Gesamtzahl der von Moderatoren ignorierten Benutzerkennzeichnungen.
  - `score`: Eine berechnete Punktzahl, die die Leistung des Benutzers bei der Kennzeichnung darstellt.

- **FROM-Klausel** : Die Abfrage verknüpft die `users`-Tabelle mit der `reviewable_scores`-Tabelle über die `user_id`, um Kennzeichnungsinformationen zu jedem Benutzer zu erhalten.
- **WHERE-Klausel** : Die Abfrage filtert die Daten, um nur die Einträge für Benutzer mit einer `id` größer als 0 und bei denen das `created_at`-Datum der Überprüfbarkeitsbewertungen innerhalb des angegebenen Datumsbereichs liegt, einzuschließen.
- **GROUP BY-Klausel** : Die Abfrage gruppiert die Ergebnisse nach `user_id`, `username`, `uploaded_avatar_id` und `silenced_till`, um Kennzeichnungsdaten für jeden Benutzer zu aggregieren.
- **ORDER BY-Klausel** : Die Abfrage sortiert die Ergebnisse nach der berechneten `score` in absteigender Reihenfolge, um die Benutzer mit der höchsten Kennzeichnungsleistung zuerst anzuzeigen.
- **LIMIT-Klausel** : Die Abfrage beschränkt die Ergebnisse auf die Top 100 Benutzer basierend auf der berechneten Punktzahl.

### Beispielergebnisse

| user | username | silenced | disagreed\_flags | agreed\_flags | ignored\_flags | score |
| --- | --- | --- | --- | --- | --- | --- |
| user\_1\_id | user\_1 | f | 0.0 | 10.0 | 3.0 | 100.0 |
| user\_2\_id | user\_2 | f | 0.0 | 6.0 | 3.0 | 36.0 |
| user\_3\_id | user\_3 | f | 0.0 | 4.0 | 0.0 | 16.0 |
| … | … | … | … | … | … | … |

---

_[View the full topic](https://meta.discourse.org/t/dashboard-report-user-flagging-ratio/294442)._
