mysql group_concat(总和)

Posted

技术标签:

【中文标题】mysql group_concat(总和)【英文标题】:mysql group_concat (sum) 【发布时间】:2022-01-14 11:26:15 【问题描述】:

标签:

name    time                data

AAA    2021-10-1 13:05:00   11
AAA    2021-10-1 13:05:00   20
AAA    2021-10-1 14:10:00   35
BBB    2021-10-1 13:05:00   20
BBB    2021-10-1 13:05:00   20
BBB    2021-10-1 14:10:00   10
CCC    2021-10-1 14:10:00   8

我试过了:

select name,group_concat(data) from wip where time between '2021-10-26 00:00:00' 和 '2021-10-26 23:59:59' GROUP BY name

结果:

name   data
AAA   11,20,35
BBB   20,20,10
CCC   8

希望 sum(data) 按小时(时间)分组结果如下:

name   data
AAA    [31,35]
BBB    [40,10]
CCC    [ 0,18]

【问题讨论】:

在输出中显示 0 有什么价值?也许使用 group_concat 显示什么是合适的。 group_concat(sum(data)) select name,group_concat(sum(data)) from wip where time between '2021-10-26 00:00:00' and '2021-10-26 23:59:59' GROUP BY名称 嵌套选择--inner: SUM(data) GROUP BY time;使用 GROUP_CONCAT 的外层。 【参考方案1】:

需要两个步骤:

SELECT name, GROUP_CONCAT(sum_data)
    FROM ( SELECT name, time, SUM(data) AS sum_data
              FROM tbl GROUP BY name, time ) AS x

(而且我不认为“旋转”是相关的。)

如果需要括号,请使用CONCAT("[", GROUP_CONCAT(sum_data), "]")

【讨论】:

以上是关于mysql group_concat(总和)的主要内容,如果未能解决你的问题,请参考以下文章

GROUP_CONCAT 限制为 100 个值不起作用

解决mysql中group_concat长度限制的方案

mysql 的group_concat方法

mysql用GROUP_CONCAT合并查询出现乱码?求大神!!!

mysql—group_concat函数

mysql查询结果拼接group_concat