Bien.
Je n’avais jamais utilisé REGEXP_MATCHES auparavant, mais je viens de les tester (enfin, le second. Je n’ai pas Retort installé
).
Je pense que vous voulez faire un GROUP BY emoji plutôt que smiley. De plus, user_id > 1 exclurait l’administrateur d’origine. C’est peut-être intentionnel, mais je voulais juste le mentionner. ![]()
J’ai aussi demandé à Bert
une explication au cas où cela serait utile à quelqu’un d’autre :
Ce que Bert a dit :
Cette requête est utilisée pour compter le nombre de fois où chaque emoji est utilisé dans la table posts.
Voici une explication de la requête :
SELECT count(*), REGEXP_MATCHES(raw, ' :([a-z_]+): ', 'g') emoji: C’est la partie principale de la requête. Elle compte le nombre de lignes (count(*)) et utilise une expression régulière (REGEXP_MATCHES) pour trouver et extraire l’emoji de la colonneraw. L’expression régulière' :([a-z_]+): 'recherche des motifs qui commencent et se terminent par deux points (:) et qui contiennent une ou plusieurs lettres minuscules ou un trait de soulignement entre les deux. Le drapeau ‘g’ signifie qu’il trouvera toutes les correspondances plutôt que de s’arrêter après la première. L’emoji trouvé est ensuite renomméemoji.FROM posts: Ceci spécifie la table à partir de laquelle les données sont récupérées, dans ce cas, la tableposts.WHERE user_id > 0: C’est une condition qui filtre les lignes considérées. Seules les lignes oùuser_idest supérieur à 0 sont incluses.GROUP BY emoji: Ceci regroupe les résultats par l’aliasemoji. Cela signifie que pour chaque emoji unique, il comptera le nombre de lignes.ORDER BY 1 DESC: Ceci trie les résultats par la première colonne de l’ensemble de résultats (qui est le compte) par ordre décroissant. Cela signifie que les emojis les plus fréquemment utilisés apparaîtront en premier.
Donc, en résumé, cette requête compte le nombre de fois où chaque emoji est utilisé dans la table posts, pour les messages où user_id est supérieur à 0, et trie les résultats de manière à ce que les emojis les plus fréquemment utilisés apparaissent en premier.