一个处理数据的需求,目前已经实现出来了,测试提出性能太低,所以请教一下,看看有没有比较好的处理实现方式,目前实现 sql 处理一部分,代码处理一部分
环境:Java1.8 Mysql 8
type | value | date |
---|---|---|
1 | 10.111 | 2023-03-21 01:00:00 |
2 | 19.111 | 2023-03-21 01:00:00 |
2 | 11.111 | 2023-03-21 02:00:00 |
3 | 12.111 | 2023-03-21 02:00:00 |
1 | 13.111 | 2023-03-22 11:00:00 |
1 | 14.111 | 2023-03-22 12:00:00 |
1 | 15.111 | 2023-03-23 11:00:00 |
一张数据库表,如上, 用户根据某种类型添加数据,type 类型固定的 1-3,按日期插入数据,日期会重复因为是用户手动选择;
目标需求:按日期(yyyy-MM-dd)分组+倒序,每个类型查出最新的一条;并统计每个类型有多少条,
如上表数据,最终预期输出为:count(是这个日期分组下,这个类型的条数)
{
"2023-03-21": [{
"type": "1",
"value": "10.111",
"date": "2023-03-21 01:00:00",
"count": 1
}, {
"type": "2",
"value": "11.111",
"date": "2023-03-21 02:00:00",
"count": 2
},
{
"type": "3",
"value": "12.111",
"date": "2023-03-21 02:00:00",
"count": 1
}
],
"2023-03-22": [{
"type": "1",
"value": "14.111",
"date": "2023-03-22 12:00:00",
"count": 1
}],
"2023-03-23": [{
"type": "1",
"value": "15.111",
"date": "2023-03-23 11:00:00",
"count": 1
}]
}
ps: 上述需求是接口里 1/5 的功能,还有后续处理
Ps: 代码简洁,支持使用第三方库
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.