Bello.
Non ho mai usato REGEXP_MATCHES, ma li ho appena provati (beh, il secondo. Non ho Retort installato
).
Penso che tu voglia fare GROUP BY emoji invece di smiley. Inoltre, user_id > 1 escluderebbe l’amministratore originale. Potrebbe essere intenzionale, ma ho pensato di menzionarlo. ![]()
Ho anche chiesto a Bert
una spiegazione, nel caso fosse utile ad altri:
Cosa ha detto Bert:
Questa query viene utilizzata per contare il numero di volte in cui ogni emoji viene utilizzata nella tabella posts.
Ecco una ripartizione della query:
SELECT count(*), REGEXP_MATCHES(raw, ' :([a-z_]+): ', 'g') emoji: Questa è la parte principale della query. Conta il numero di righe (count(*)) e utilizza un’espressione regolare (REGEXP_MATCHES) per trovare ed estrarre l’emoji dalla colonnaraw. L’espressione regolare' :([a-z_]+): 'cerca modelli che iniziano e finiscono con due punti (:) e hanno una o più lettere minuscole o underscore in mezzo. Il flag ‘g’ significa che troverà tutte le corrispondenze invece di fermarsi dopo la prima. L’emoji trovata viene quindi rinominataemoji.FROM posts: Specifica la tabella da cui vengono recuperati i dati, in questo caso la tabellaposts.WHERE user_id > 0: Questa è una condizione che filtra le righe considerate. Sono incluse solo le righe in cuiuser_idè maggiore di 0.GROUP BY emoji: Raggruppa i risultati in base all’aliasemoji. Ciò significa che per ogni emoji univoca, conterà il numero di righe.ORDER BY 1 DESC: Ordina i risultati in base alla prima colonna del set di risultati (che è il conteggio) in ordine decrescente. Ciò significa che le emoji utilizzate più frequentemente appariranno per prime.
Quindi, in sintesi, questa query conta il numero di volte in cui ogni emoji viene utilizzata nella tabella posts, per i post in cui user_id è maggiore di 0, e ordina i risultati in modo che le emoji più utilizzate appaiano per prime.