mysql - GROUP BY MySQL中GROUP BY返回的行数

标签 mysql group-by

我有一张表 - 对于这个问题,它只有一列 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;

关于mysql - GROUP BY MySQL中GROUP BY返回的行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34712264/

相关文章:

mysql - 将 mysql 列导出到文本文件并添加字符串

mysql - 如何创建此关系表?

mysql - 在 Rails 中按月和年对记录进行分组

python - 使用 python 进行 block 随机化?

mysql - 检索每组中的最后一条记录 - MySQL

php - 根据用户登录显示数据库中的数据

php - 根据与查询的相关性对mysql结果进行排序

php - PDO异常 : SQLSTATE[HY000]: General error: 3 Error writing file '/tmp/MYHKgYpv' (Errcode: 28)

r - 如何对 R 数据框中的多列进行计数和分组?

sql - PostgreSQL 11.2 按单个表中的公共(public)属性对对象进行分组