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 columnaraw. 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 comoemoji.FROM posts: Esto especifica la tabla de la que se recuperan los datos, en este caso, la tablaposts.WHERE user_id > 0: Esta es una condición que filtra las filas que se consideran. Solo se incluyen las filas donde eluser_ides mayor que 0.GROUP BY emoji: Esto agrupa los resultados por el aliasemoji. 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.