Obtener las 10 publicaciones con más me gusta o vistas de ayer

¿Hay alguna forma de obtener las 10 publicaciones con más “me gusta” o vistas de ayer? Parece que la base de datos solo almacena valores acumulados. Gracias.

Hola :slight_smile:

¿Tienes habilitado el plugin Discourse Data Explorer en tu sitio?

No está habilitado, ¿necesita habilitarse para registrar datos más detallados?

Deberías habilitarlo, luego podrás realizar consultas específicas limitadas al día anterior (ayer).

Consulta de las 10 publicaciones principales por “Me gusta” de ayer

-- Top 10 Posts by Likes from Yesterday
WITH yesterday_actions AS (
  SELECT 
    post_id,
    COUNT(*) AS like_count
  FROM post_actions
  WHERE 
    created_at::date = CURRENT_DATE - 1
    AND post_action_type_id = 2  -- Like action type
  GROUP BY post_id
)

SELECT 
  p.id AS post_id,
  t.id AS topic_id,
  t.title AS topic_title,
  p.post_number,
  u.username AS author,
  ya.like_count AS likes_yesterday
FROM yesterday_actions ya
JOIN posts p ON p.id = ya.post_id
JOIN topics t ON t.id = p.topic_id
JOIN users u ON u.id = p.user_id
ORDER BY likes_yesterday DESC
LIMIT 10;

Consulta de las 10 publicaciones principales por visualizaciones de ayer

-- Top 10 Topics by Views from Yesterday
WITH yesterday_topic_views AS (
  SELECT 
    topic_id,
    COUNT(*) AS view_count
  FROM topic_views
  WHERE viewed_at::date = CURRENT_DATE - 1
  GROUP BY topic_id
)

SELECT 
  t.id AS topic_id,
  t.title,
  u.username AS creator,
  ytv.view_count AS views_yesterday
FROM yesterday_topic_views ytv
JOIN topics t ON t.id = ytv.topic_id
JOIN users u ON u.id = t.user_id
ORDER BY views_yesterday DESC
LIMIT 10;

(¡generado usando un bot de IA!)

1 me gusta