我希望使用这个JavaScript库https://kamisama.github.io/cal-heatmap/生成像GitHub使用的事件样式热图。
我计划使用它来表示我的项目管理应用程序每天在任务记录上发生多少操作。
例如,每个广场将是1天。当你在广场上悬停时所显示的颜色和项目数将是当天在该任务记录上执行的活动总数。
一项任务活动包括:
因此,在2015年6月17日,如果对一个任务进行了5次评论,并更新了指定的用户字段。它将在生成的热图上显示当天广场的6个项目。
我需要帮助的是生成JSON,它将为每个Task记录生成Heatmap。
我将从数据库中提取任务的任务活动。
因此,我应该能够查询数据库,以计数每天在任务上活动DB表中创建的所有记录。
我的热图开始日期和结束日期将是开始日期设置为任务记录创建的日期。结束日期是今天。
假设我的MySQL数据库结构如下所示:
Table name: task_activities
activity_id
task_id
activity_type
created_datetime
因此,我需要计数,当task_id
= Task构建JSON输出时,每天的总记录数。
JSON输出需要采用以下格式:
{
"timestamp": 5,
"timestamp2": 2,
"timestamp3": 4,
...
}
timestamp
需要表示当天,值将是该任务ID当天MySQL活动记录的总数。
有人能帮助我生成所需的MySQL来生成那种格式的JSON结果吗?在这种格式中,每天都是一个Timestamp
值,而这个数字是该任务记录在给定一天中的活动总数?
发布于 2015-06-17 18:45:39
您希望将数据按日期组合在一起,而不管一天中的什么时候,但是每行中的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日期和时间文档。
下面是一个降级行为的SQL小提琴。
https://stackoverflow.com/questions/30899162
复制相似问题