MySQL 显示分组结果

标签 mysql sql group-by subquery having


我有以下表格片段:

 stamp   | group  | value
 123     | 1      | 4
 124     | 2      | 5
 124     | 2      | 6
 125     | 4      | 7
 125     | 4      | 8
 125     | 5      | 9

我似乎找不到给我这个结果的查询:

 stamp   | value1  | value2
 124     | 5       | 6
 125     | 7       | 8
 125     | 9       | null

基本上,所有具有相同标记的结果都会显示,并按“组”分组。 这可能吗 ?我尝试使用子查询、“group by”和“having”语句来完成此任务,但我似乎找不到正确的查询..

提前致谢!

最佳答案

我认为你或多或少需要这样的东西:

SELECT stamp, `group`, GROUP_CONCAT(`value`) AS `values`
FROM stamps
GROUP BY stamp, `group`

key 是GROUP_CONCAT .

根据您的数据,输出将为

+-------+-------+--------+
| stamp | group | values |
+-------+-------+--------+
|   123 |     1 | 4      |
|   124 |     2 | 5,6    |
|   125 |     4 | 7,8    |
|   125 |     5 | 9      |
+-------+-------+--------+

关于MySQL 显示分组结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25776684/

相关文章:

php - 从另一个多维数组添加一个键到一个多维数组

php - foreach循环与mysql链接表

sql - 删除输出中的括号

php - 无法执行在 phpMyAdmin 中运行的 mysql

Mysql: MyIsam 或 InnoDB 当 UUID 将被用作 PK

sql - 通过其他列值获取列中每个唯一值的前x%行

php - 使用 Javascript/PHP/mySQL 的日历

MySQL 如何编写 SQL 来查找任何 15 分钟窗口中的过多事务?

php - 如何在对 SQL 查询进行分组(使用 GROUP BY)后获取行数?

sql-server - 每天独特的行数