我想使用此JavaScript库https://kamisama.github.io/cal-heatmap/生成类似GitHub所使用的事件样式的热图。

我计划使用它来表示任务记录上每天在Project Management应用程序上发生多少操作。

例如,每个正方形将是1天。当您将鼠标悬停在一个正方形上时,它的颜色和项目数将是该任务记录在当日执行的活动总数。

任务活动包括:


任务标题,描述,截止日期,里程碑,优先级,分配的用户或正在更新的标签。
发表在任务记录上的评论或评论回复。


因此,在2015年6月17日,如果对任务发表了5条评论,并且分配的用户字段已更新。它将在生成的热图上显示当日的6个项目。



我需要帮助的是生成JSON,该JSON将为每个Task记录生成Heatmap。

我将从MySQL数据库中提取任务的任务活动。

因此,我应该能够查询数据库,以计算每天在Task的活动DB表中创建的所有记录。

我的Heatmap的开始和结束日期将是设置为创建任务记录的日期的开始日期。结束日期将是今天的日期。

假设我的MySQL数据库结构如下所示:

Table name: task_activities
activity_id
task_id
activity_type
created_datetime


因此,当task_id =我要为其构建JSON输出的Task记录时,我将需要计算每天的记录总数。

JSON输出必须采用以下格式:

{
    "timestamp": 5,
    "timestamp2": 2,
    "timestamp3": 4,
    ...
}


timestamp需要代表日期,该值将是该任务ID当天MySQL活动记录的总数。

有人可以帮我生成所需的MySQL,以这种格式生成JSON结果,其中每天是Timestamp值,数字是该任务记录在给定日期的活动总数?

最佳答案

您希望按日期将数据汇总在一起,而与一天中的时间无关,但是每行中的date元素都包含一个时间。因此,您需要提取date_created字段的日期部分:

SELECT DATE_FORMAT(DATE(`date_created`), '%Y-%m-%dT00:00:00') AS `date`,
       COUNT(`event_id`) AS `count`
  FROM `task_activities`
 WHERE `task_id`='242'
 GROUP BY DATE(`date_created`);


GROUP BY DATE()片段仅将日期部分用作分组元素。 DATE_FORMAT()片段返回以自定义方式格式化的日期。有关可用的修饰符,请参见MySQL date & time documentation

这是SQL fiddle演示行为。

关于javascript - 从MySQL数据库生成JSON结果,其中每天有任务记录的记录总数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30899162/

10-11 22:21
查看更多