我有一个按日期排序的mysql结果,按日期和ID分组。
SELECT
DATE(`created_at`) AS `date`,
COUNT(`id`) AS `count`,
`account_id`
FROM `streamaccounts`
GROUP BY `date`, `account_id`
ORDER BY `date`;
结果如下:
date,count,account_id
2011-03-23,2,1 2011-03-23,1,6 2011-04-25,1,1 2011-04-26,5,6
如果你问我,这是使用它制作带有高图的图形的正确结果集。 但我陷入了以下问题。
我无法弄清楚如何为highcharts创建正确的结果。 结果必须如下所示:
series: [{name: 'account1', data: [2, 1]}, {name: 'account2', data: [1, 5}]
它将全部用PHP编程并回显出来打印出有效的javascript。 我该怎么办?我是否需要先遍历所有日期并检查该日期是否有效?或者我首先遍历所有帐户并检查有效日期。
有什么建议吗?
提前致谢!
答案 0 :(得分:2)
通过将数据转换为以下格式之一,让我更容易让Highchart从SQL查询中完成数据处理工作:
由于您的查询已在执行CSV文件,因此请按照#2的示例进行操作。
答案 1 :(得分:0)
group by account_id
会根据帐户计算所有内容
更新
group by date, account_id
答案 2 :(得分:0)
所以基本上你会有一个由日期组成的X轴, 并且Y轴将包括每个帐户的计数。
最简单的方法是通过数据的公共轴生成此数据,在本例中为日期。 因此,您需要遍历图表所需时间范围内的日期, 并将计数映射到那些日子。结束可能如下所示的数据集:
series : [
{name: 'ac1', data: [0,1,5,0,0,0,0,2,3]},
{name: 'ac2', data: [0,0,2,1,0,1,0,0,0]}
]
以这样的示例结束:http://jsfiddle.net/55dvF/4/
希望有所帮助。