Uso de emojis

Estou planejando substituir o retort por discourse reactions. Para descobrir quais emojis usar, eu queria saber como é o uso deles no meu fórum. Como não encontrei uma consulta para isso, compartilho a minha:

Contar emojis adicionados com o 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 em posts (sem o usuário do sistema)

SELECT count(*), REGEXP_MATCHES(raw, ' :([a-z_]+): ', 'g') emoji
    FROM posts
    WHERE user_id > 0
    GROUP BY emoji
    ORDER BY 1 DESC
4 curtidas

Legal. :slight_smile: Eu nunca usei REGEXP_MATCHES antes, mas acabei de testá-los (bem, o segundo. Não tenho o Retort instalado :slight_smile:).

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. :+1:

Também pedi ao Bert :robot: 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 coluna raw. 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 de emoji.
  • FROM posts: Isso especifica a tabela da qual os dados estão sendo recuperados, neste caso, a tabela posts.
  • WHERE user_id > 0: Esta é uma condição que filtra as linhas que estão sendo consideradas. Apenas linhas onde o user_id é maior que 0 são incluídas.
  • GROUP BY emoji: Isso agrupa os resultados pelo alias emoji. 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.

2 curtidas

Ah, você tem razão. Eu mudei isso no meu site, mas esqueci aqui. :blush:

De fato, eu deveria ter mencionado isso na minha postagem. user_id 1 é um usuário legado (quando a postagem anônima ainda era permitida no meu site) que eu não queria incluir na contagem.

1 curtida