Vorrei sapere quali post sul mio forum hanno ricevuto più “mi piace” da quando abbiamo iniziato a utilizzare Discourse (quasi 4 anni fa).
Ho cercato qui e ho trovato questo, che sembra essere la stessa domanda, ma l’argomento è chiuso quindi non posso aggiungere nulla:
Le soluzioni fornite in quell’altro argomento da @dax non forniscono in realtà ciò che io (o quell’altro richiedente) stiamo cercando:
discourse.example.com/?order=likes (i “mi piace” sono dati in tutti gli argomenti)
o discourse.example.com/search digita in:likes e ordina i risultati per “più apprezzati”
Il primo non funziona affatto (e torna semplicemente alla home page del mio forum).
Il secondo restituisce solo risultati per i post più apprezzati che ho apprezzato io stesso. Vedi qui:
Quando digito in:likes nel campo di ricerca, seleziona automaticamente la casella “Ho apprezzato”. Se poi deseleziono quella casella, il testo in:likes nel campo di ricerca viene cancellato insieme ad essa. Non posso avere in:likes nel campo di ricerca e una casella “Ho apprezzato” deselezionata.
Quindi, questo non mi dà quello che voglio sapere. C’è un modo per ottenerlo?
Ho appena creato questa query di Data Explorer con l’aiuto di Gemini. Restituisce i 10 post più apprezzati, in assoluto.
-- Interroga i 10 post più apprezzati di tutti i tempi (per le versioni moderne di Discourse)
SELECT
p.id AS post_id,
p.like_count,
CONCAT('/t/', t.slug, '/', t.id, '/', p.post_number) AS url,
t.title AS topic_title,
p.user_id,
u.username
FROM posts AS p
JOIN topics AS t ON t.id = p.topic_id
JOIN users AS u ON u.id = p.user_id
WHERE p.deleted_at IS NULL
AND t.deleted_at IS NULL
AND p.post_type = 1 -- 1 per i post normali
ORDER BY p.like_count DESC
LIMIT 10