我有一张桌子 - 就这个问题而言,它有一个专栏word
.此表中包含以下信息:
apple
- 出现3次
banana
- 出现5次
pear
- 出现3次
我编写了以下SQL代码来唯一地选择每个单词,以及该单词出现在表中的次数:
SELECT word, COUNT(word) FROM table GROUP BY word ORDER BY COUNT(word) DESC;
这将返回以下信息:
-------------------------- | word | COUNT(word) | -------------------------- | banana | 5 | -------------------------- | apple | 3 | -------------------------- | pear | 3 | --------------------------
有没有办法编写查询以返回以下信息:
----------------------------- | COUNT(word) | words | ----------------------------- | 5 | banana | ----------------------------- | 3 | apple, pear | -----------------------------
我正在思考双重思路GROUP BY
,但还没有想到太多.
你可以使用GROUP_CONCAT
:
SELECT word_count, GROUP_CONCAT(word SEPARATOR ', ') as words FROM (SELECT word, COUNT(word) as word_count FROM table GROUP BY word) w GROUP BY word_count ORDER BY word_count DESC;