GROUP_CONCAT不同的日期和相应的值(以绘制图表)

时间:2019-01-08 20:59:50

标签: mysql

我想在图表上绘制一系列唯一的日期以及每个日期的对应值。但是,一个日期可以有多个值,但我希望图表每个日期仅显示一个值。

例如:

Jan 01: 2342
Jan 03: 2560
Jan 03: 2782
Jan 04: 2893
Jan 05: 3102

我想省略Jan 03日期和值之一,而只显示该日期的一个值。

使用GROUP BY无法解决此问题,我需要使用GROUP_CONCAT将输出作为两个值列表

我正在使用group_concat和unique来选择唯一的日期,但是我无法将其映射到值上,而只能选择与该日期相对应的值。

SELECT 
    GROUP_CONCAT(DISTINCT date_format(date,'%e %b') order by date asc) as dates, 
    GROUP_CONCAT(balance) as balances

1 个答案:

答案 0 :(得分:0)

您可以将日期添加到未合并的字段中,并创建GROUP BY子句:

SELECT date_format(date,'%e %b'), GROUP_CONCAT(balance) as balances
FROM ...
GROUP BY date_format(date,'%e %b')
ORDER BY date asc

实际上,如果您的值是数字,则可能需要AVG来代替:

SELECT date_format(date,'%e %b'), AVG(balance) as balances
FROM ...
GROUP BY date_format(date,'%e %b')
ORDER BY date asc