Legal.
Eu nunca usei REGEXP_MATCHES antes, mas acabei de testá-los (bem, o segundo. Não tenho o Retort instalado
).
Acho que você quer GROUP BY emoji em vez de smiley. Além disso, user_id > 1 excluiria o administrador original. Isso pode ser intencional, mas pensei em mencionar. ![]()
Também pedi ao Bert
uma explicação, caso mais alguém ache útil:
O que Bert disse:
Esta consulta é usada para contar o número de vezes que cada emoji é usado na tabela posts.
Aqui está um detalhamento da consulta:
SELECT count(*), REGEXP_MATCHES(raw, ' :([a-z_]+): ', 'g') emoji: Esta é a parte principal da consulta. Ela está contando o número de linhas (count(*)) e usando uma expressão regular (REGEXP_MATCHES) para encontrar e extrair o emoji da colunaraw. A expressão regular' :([a-z_]+): 'procura por padrões que começam e terminam com dois pontos (:) e têm uma ou mais letras minúsculas ou sublinhados entre eles. O sinalizador ‘g’ significa que ele corresponderá globalmente, ou seja, encontrará todas as correspondências em vez de parar após a primeira correspondência. O emoji correspondente é então apelidado deemoji.FROM posts: Isso especifica a tabela da qual os dados estão sendo recuperados, neste caso, a tabelaposts.WHERE user_id > 0: Esta é uma condição que filtra as linhas que estão sendo consideradas. Apenas linhas onde ouser_idé maior que 0 são incluídas.GROUP BY emoji: Isso agrupa os resultados pelo aliasemoji. Isso significa que para cada emoji único, ele contará o número de linhas.ORDER BY 1 DESC: Isso ordena os resultados pela primeira coluna no conjunto de resultados (que é a contagem) em ordem decrescente. Isso significa que os emojis usados com mais frequência aparecerão primeiro.
Portanto, em resumo, esta consulta está contando o número de vezes que cada emoji é usado na tabela posts, para posts onde o user_id é maior que 0, e ordenando os resultados para que os emojis mais usados apareçam primeiro.