我想在图表上绘制一系列唯一的日期以及每个日期的对应值。但是,一个日期可以有多个值,但我希望图表每个日期仅显示一个值。
例如:
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
答案 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