Dashboard-Bericht - Beiträge

Ja, Sie können die folgende Abfrage dafür verwenden:

--[params]
-- date :start_date
-- date :end_date
-- null category_id :category_id 
-- null user_id :user_id
-- boolean :include_subcategories = false

SELECT 
    u.username AS "Benutzer",
    p.created_at::date AS "Datum",
    COUNT(p.id) AS "Anzahl"
FROM posts p
INNER JOIN topics t ON t.id = p.topic_id AND t.deleted_at IS NULL
INNER JOIN users u ON p.user_id = u.id
LEFT JOIN categories c ON t.category_id = c.id
WHERE p.created_at::date BETWEEN :start_date AND :end_date
    AND p.deleted_at IS NULL
    AND t.archetype = 'regular'
    AND p.post_type = 1
    AND (
        :category_id IS NULL 
        OR t.category_id = :category_id
        OR (:include_subcategories AND c.parent_category_id = :category_id)
    )
    AND (:user_id IS NULL OR p.user_id = :user_id)
GROUP BY u.username, p.created_at::date
ORDER BY p.created_at::date ASC, u.username

Parameter:

  • :start_date & :end_date: Definieren Sie den Berichtszeitraum (erforderlich)
  • :category_id: Optionaler Filter für eine bestimmte Kategorie
  • :user_id: Optionaler Filter für einen bestimmten Benutzer
  • :include_subcategories: Option zum Einbeziehen von Unterkategorien der ausgewählten Kategorie

Diese Abfrage zeigt:

  • Benutzer: Benutzername des Beitragsautors
  • Datum: Das Kalenderdatum, an dem Beiträge erstellt wurden
  • Anzahl: Anzahl der von diesem Benutzer an diesem Datum erstellten Beiträge

Beispieldaten:

Benutzer Datum Anzahl
benutzer 1 2023-01-01 3
benutzer 2 2023-01-01 2
benutzer 3 2023-01-01 1
benutzer 1 2023-01-02 2
benutzer 2 2023-01-02 3
benutzer 1 2023-01-03 1
2 „Gefällt mir“