# O Discourse acompanha dias consecutivos ativos?

**URL:** https://meta.discourse.org/t/does-discourse-track-consecutive-days-active/349671
**Category:** Data & reporting
**Tags:** badges, sql-query
**Created:** [30 Janeiro , 2025 03:46 UTC](https://meta.discourse.org/t/does-discourse-track-consecutive-days-active/349671 "2025-01-30T03:46:54Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![MikeNolan](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mikenolan/32/297597_2.png) [@MikeNolan](https://meta.discourse.org/u/MikeNolan)
#### Post date: [30 Janeiro , 2025 03:46 UTC](https://meta.discourse.org/t/does-discourse-track-consecutive-days-active/349671/1 "2025-01-30T03:46:54Z")

</div>

Um membro do nosso fórum Discourse perguntou se o Discourse tem uma forma de mostrar/reconhecer dias consecutivos de visita ou postagem em um fórum Discourse. Não vejo essa informação em nenhum lugar nas informações do usuário do administrador, ela é mantida em algum lugar?

Para constar, o reddit tem esse recurso.

---

<div class="post-metadata">

### Author: ![NateDhaliwal](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/natedhaliwal/32/313494_2.png) [@NateDhaliwal](https://meta.discourse.org/u/NateDhaliwal)
#### Post date: [30 Janeiro , 2025 03:52 UTC](https://meta.discourse.org/t/does-discourse-track-consecutive-days-active/349671/2 "2025-01-30T03:52:07Z")

</div>

Bem, sim, pois existem selos como Entusiasta, Aficionado e Devoto que são para dias consecutivos visitados. Visitado = curtiu uma postagem/respondeu uma vez, se bem me lembro.

---

<div class="post-metadata">

### Author: ![Lilly](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/lilly/32/575047_2.png) [@Lilly](https://meta.discourse.org/u/Lilly)
#### Post date: [30 Janeiro , 2025 04:23 UTC](https://meta.discourse.org/t/does-discourse-track-consecutive-days-active/349671/3 "2025-01-30T04:23:13Z")

</div>

![Screenshot 2025-01-29 at 8.02.06 PM](https://global.discourse-cdn.com/meta/original/4X/9/4/f/94f4d872101241ba3f1c3c32602c91098aa0a7ba.png)

Você provavelmente pode fazer uma consulta no explorador de dados. Aqui está o esquema da tabela `user_visits` aqui:

> <https://github.com/discourse/discourse/blob/d75a0b116578d734ffbe0079fe983c33b69099d2/app/models/user_visit.rb#L60-L76C2>

Talvez algo como isto? 🤔

```sql
WITH consecutive_visits AS (
    SELECT
        user_id,
        visited_at,
        visited_at - INTERVAL '1 day' * ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY visited_at) AS grp
    FROM
        user_visits
),
visit_streaks AS (
    SELECT
        user_id,
        COUNT(*) AS streak_length
    FROM
        consecutive_visits
    GROUP BY
        user_id, grp
)
SELECT
    user_id,
    MAX(streak_length) AS longest_streak
FROM
    visit_streaks
GROUP BY
    user_id
ORDER BY
    longest_streak DESC
LIMIT 100

```

Ou talvez você possa combinar com a tabela `user_actions` (visitas com curtidas e postagens?), que está aqui:

> <https://github.com/discourse/discourse/blob/d75a0b116578d734ffbe0079fe983c33b69099d2/app/models/user_action.rb#L477-L498C2>

---

<div class="post-metadata">

### Author: ![MikeNolan](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mikenolan/32/297597_2.png) [@MikeNolan](https://meta.discourse.org/u/MikeNolan)
#### Post date: [30 Janeiro , 2025 04:29 UTC](https://meta.discourse.org/t/does-discourse-track-consecutive-days-active/349671/4 "2025-01-30T04:29:31Z")

</div>

Obrigado, levarei isso em consideração.

---

<div class="post-metadata">

### Author: ![system](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/system/32/443519_2.png) [@system](https://meta.discourse.org/u/system)
#### Post date: [1 Março , 2025 04:29 UTC](https://meta.discourse.org/t/does-discourse-track-consecutive-days-active/349671/5 "2025-03-01T04:29:40Z")

</div>

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
