結構です。
REGEXP_MATCHES は初めて使いますが、これらをテストしてみました(2番目のものだけです。Retort はインストールしていません
)。
smiley ではなく emoji で GROUP BY する必要があると思います。また、user_id > 1 は元の管理者を排除します。意図したことかもしれませんが、念のため言っておきます。![]()
他の誰かの役に立つかもしれないので、Bert
にも説明を求めました。
Bert の発言:
このクエリは、posts テーブルで各絵文字が使用された回数をカウントするために使用されます。
クエリの内訳は次のとおりです。
SELECT count(*), REGEXP_MATCHES(raw, ' :([a-z_]+): ', 'g') emoji: これはクエリの主要部分です。行数 (count(*)) をカウントし、正規表現 (REGEXP_MATCHES) を使用してraw列から絵文字を一致させ、抽出します。正規表現' :([a-z_]+): 'は、コロン (:) で始まり、コロンで終わるパターンを探し、その間に1つ以上の小文字またはアンダースコアがあるものを探します。「g」フラグは、グローバルに一致することを意味します。つまり、最初の一致で停止するのではなく、すべての一致を見つけます。一致した絵文字はemojiというエイリアスが付けられます。FROM posts: これは、データが取得されるテーブルを指定します。この場合はpostsテーブルです。WHERE user_id > 0: これは、考慮される行をフィルタリングする条件です。user_idが 0 より大きい行のみが含まれます。GROUP BY emoji: これは、結果をemojiエイリアスでグループ化します。これは、各ユニークな絵文字に対して、行数をカウントすることを意味します。ORDER BY 1 DESC: これは、結果セットの最初の列(カウント)を降順で並べ替えます。これにより、最も頻繁に使用される絵文字が最初に表示されます。
したがって、要約すると、このクエリは、user_id が 0 より大きい投稿で、posts テーブルで使用された各絵文字の回数をカウントし、最も頻繁に使用される絵文字が最初に表示されるように結果を並べ替えます。