根据接口文档组装数据返回json。需要一周内,每天不同部门对应的数量
例如:
"xdata": [
"2022-01-12","2022-01-13","2022-01-14",
], //X轴数据
"ydata": [
{
"deptid": 12345, //部门ID
"deptname": "测试", //部门名称
"gogndanshudata": [
1234,1124,1352,1522
] //工单数量
},其他数据}
为了减少java代码,想在MySQL中直接查询所需数据格式
SELECT khc.tj_shijian shijian,
kad.dept_id deptid,
kad.dept_name deptname ,
SUM(khc.gogndan_shu) num
FROM kxt_hotspot_count khc
INNER JOIN kxt_auth_dept kad ON khc.area_id = kad.dept_id
WHERE khc.version = '1'
AND khc.tj_shijian BETWEEN '2022-02-11' AND '2022-02-20'
GROUP BY kad.dept_id, khc.tj_shijian
考虑使用 GROUP_CONCAT(expr) 但是使用sum聚合函数后报错
图中后面相同id的shijian列和num合并显示
例如:
shijian列 : 2022-02-16,2022-02-17,2022-02-18
deptid列 : 12345(部门id)
num列 :111,1665,222
目前已解决:
SELECT
kad.dept_id deptid,
kad.dept_name deptname ,
GROUP_CONCAT(gogndan_shu ORDER BY tj_shijian ASC) gogndanshudata,
GROUP_CONCAT(tj_shijian ORDER BY tj_shijian ASC) shijian
FROM
kxt_hotspot_count khc
INNER JOIN
kxt_auth_dept kad
ON khc.area_id = kad.dept_id
WHERE
khc.version = '1'
AND khc.tj_shijian BETWEEN '2022-02-11' AND '2022-02-20'
GROUP BY
kad.dept_id;
可能有不对地方,欢迎大牛指正。修改
挺好的,严谨一点的话,kad.dept_name 也加入到group by 后面哈。