# Relatório do Painel - Edições de Postagem

**URL:** <https://meta.discourse.org/t/dashboard-report-post-edits/292019>\
**Category:** Data & reporting\
**Tags:** sql-query, dashboard-reports, dashboard-sql\
**Created:** [18 Janeiro , 2024 00:41 UTC](https://meta.discourse.org/t/dashboard-report-post-edits/292019 "2024-01-18T00:41:07Z")\
**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:** [18 Janeiro , 2024 00:41 UTC](https://meta.discourse.org/t/dashboard-report-post-edits/292019/1 "2024-01-18T00:41:07Z")

</div>

Esta é uma versão SQL do Relatório de Painel para Edições de Postagens.

Este relatório de painel mostra postagens que foram editadas em um intervalo de datas específico e inclui informações sobre o editor, o autor da postagem e o motivo pelo qual a postagem foi editada. Este relatório foi projetado para ajudar os administradores a monitorar e entender a atividade de edição que ocorre em seus fóruns, com foco particular em casos em que usuários que não sejam os autores originais fazem edições em postagens.

```sql
-- [params]
-- date :start_date = 2023-12-16
-- date :end_date = 2024-01-16

SELECT
    pr.created_at::date as day,
    pr.post_id as post_id,
    pr.user_id AS editor_user_id,
    p.user_id AS author_user_id,
    p.edit_reason
FROM post_revisions pr
JOIN posts p ON p.id = pr.post_id
WHERE pr.created_at BETWEEN :start_date AND :end_date
AND pr.user_id > 0
AND pr.user_id <> p.user_id
ORDER BY pr.created_at ASC

```

### Explicação da Consulta SQL

- **Declaração de Parâmetros** :
  - A consulta aceita dois parâmetros, `:start_date` e `:end_date`, que definem o intervalo de datas para o relatório. Ambos os parâmetros de data aceitam o formato de data `AAAA-MM-DD`.

- **Seleção de Dados** : A instrução `SELECT` especifica as colunas que aparecerão no relatório final. Estas incluem:
  - `pr.created_at::date as day`: A data em que uma revisão de postagem foi criada, e é convertida para o tipo `date` para remover a parte do tempo.
  - `pr.post_id`: O ID da postagem que foi editada.
  - `pr.user_id AS editor_user_id`: O ID do usuário que fez a edição. Este é apelidado de `editor_user_id` para diferenciá-lo do autor da postagem original.
  - `p.user_id AS author_user_id`: O ID do usuário que escreveu a postagem original, apelidado de `author_user_id`.
  - `p.edit_reason`: O motivo fornecido para a edição, se algum foi dado.

- **Junção de Tabelas** : A cláusula `FROM` inclui uma instrução `JOIN` que combina a tabela `post_revisions` (`pr`) com a tabela `posts` (`p`). A junção é feita na condição de que `post_revisions.post_id` corresponda a `posts.id`, ligando assim uma revisão aos detalhes da postagem original.
- **Filtros** : A cláusula `WHERE` aplica vários filtros aos dados:
  - `pr.created_at BETWEEN :start_date AND :end_date`: Inclui apenas revisões de postagens criadas dentro do intervalo de datas especificado pelos parâmetros.
  - `pr.user_id > 0`: Garante que o editor seja um usuário real e não uma operação do sistema (um `user_id` de 0 geralmente indica uma operação do sistema).
  - `pr.user_id <> p.user_id`: Filtra revisões feitas pelo autor original da postagem, focando apenas em edições feitas por usuários diferentes.

- **Ordenação de Resultados** : A cláusula `ORDER BY pr.created_at ASC` ordena os resultados do mais antigo para o mais recente com base no carimbo de data/hora de quando cada revisão de postagem foi feita.

### Resultados de Exemplo

| dia | post | editor\_user | author\_user | edit\_reason |
| --- | --- | --- | --- | --- |
| 2023-12-20 | post\_abc | user1 | user2 | Example Edit Reason |
| 2023-12-21 | post\_dfg | user3 | user4 | Example Edit Reason |
| 2023-12-24 | post\_xyz | user5 | user6 | NULL |

---

_[View the full topic](https://meta.discourse.org/t/dashboard-report-post-edits/292019)._
