Planeo reemplazar retort con discourse reactions. Para averiguar qué emojis usar, quería saber cómo es su uso en mi foro. Como no pude encontrar una consulta para esto, comparto la mía:
Contar emojis añadidos con el plugin retort
SELECT count(*), REGEXP_MATCHES(key, '([a-z_+]+)|retort') emoji
FROM post_details
WHERE extra = 'retort'
GROUP BY key
ORDER BY 1 DESC
Contar emojis en publicaciones (sin el usuario del sistema)
SELECT count(*), REGEXP_MATCHES(raw, ' :([a-z_]+): ', 'g') emoji
FROM posts
WHERE user_id > 0
GROUP BY emoji
ORDER BY 1 DESC
4 Me gusta
Bien.
Nunca antes había usado REGEXP_MATCHES, pero acabo de probarlos (bueno, el segundo. No tengo Retort instalado
).
Creo que quieres hacer GROUP BY emoji en lugar de smiley. Además, user_id > 1 excluiría al administrador original. Puede que sea intencional, pero solo quería mencionarlo. 
También le pedí a Bert
una explicación por si a alguien más le resulta útil:
Lo que dijo Bert:
Esta consulta se utiliza para contar el número de veces que se utiliza cada emoji en la tabla posts.
Aquí hay un desglose de la consulta:
SELECT count(*), REGEXP_MATCHES(raw, ' :([a-z_]+): ', 'g') emoji: Esta es la parte principal de la consulta. Está contando el número de filas (count(*)) y utilizando una expresión regular (REGEXP_MATCHES) para encontrar y extraer el emoji de la columna raw. La expresión regular ' :([a-z_]+): ' busca patrones que comienzan y terminan con dos puntos (:) y tienen una o más letras minúsculas o guiones bajos en el medio. El indicador ‘g’ significa que coincidirá globalmente, es decir, encontrará todas las coincidencias en lugar de detenerse después de la primera coincidencia. El emoji coincidente se renombra como emoji.
FROM posts: Esto especifica la tabla de la que se recuperan los datos, en este caso, la tabla posts.
WHERE user_id > 0: Esta es una condición que filtra las filas que se consideran. Solo se incluyen las filas donde el user_id es mayor que 0.
GROUP BY emoji: Esto agrupa los resultados por el alias emoji. Esto significa que para cada emoji único, contará el número de filas.
ORDER BY 1 DESC: Esto ordena los resultados por la primera columna del conjunto de resultados (que es el recuento) en orden descendente. Esto significa que los emojis utilizados con más frecuencia aparecerán primero.
En resumen, esta consulta cuenta el número de veces que se utiliza cada emoji en la tabla posts, para las publicaciones donde el user_id es mayor que 0, y ordena los resultados para que los emojis más utilizados aparezcan primero.
2 Me gusta
Oh, tienes razón. Lo cambié en mi sitio pero lo olvidé aquí. 
De hecho, debería haberlo mencionado en mi publicación. user_id 1 es un usuario heredado (cuando la publicación anónima todavía estaba permitida en mi sitio) que no quería incluir en el recuento.
1 me gusta