mysql - 计算 MySQL JSON 表中数组内第一次出现的项目
问题描述
我有一个 MySQL 表,其中给定期间的所有公司销售按单位、日期和数组内的每个销售涉及的所有销售代表 ID 分组。每个数组中的第一个 sales_rep ID 显示了负责完成每笔销售的销售代表。我正在尝试详细说明一个查询,该查询返回每个销售代表的单位、日期和 sales_rep ID。如果在给定日期多次显示 sales_rep ID 是可以的。
我有什么输入:
unit_id date unit_sales sales_reps
427 2019-07-01 3 [["19823508","19823510",""],["23661230","23661227","23411261",""],["23411257","19823508",""]]
466 2019-07-26 2 [["23222763","23222766","26726848","26726849",""],["23222763",""]]
所需的输出是:
unit_id date sales_rep
427 2019-07-01 19823508
427 2019-07-01 23661230
427 2019-07-01 23411257
466 2019-07-26 23222763
466 2019-07-26 23222763
解决方案
评论太长了。
你真的应该考虑修复你的数据模型。在文本列中存储结构化数据(csv、数组等)会在很多方面给您带来麻烦。通常,您要在此处执行的操作必然会涉及到非常复杂的 SQL。这可以通过采用更适合您的用例的数据模型来避免,例如:
创建一个单独的表来存储每个单位销售中涉及的销售代表列表,并带有一个布尔列,指示哪个销售代表完成了销售;这似乎是正确的方法
或者,作为中间解决方案,将您的文本列转换为 json 列:这不太干净,但至少您可以在访问数据时利用 json 函数
相关阅读:在数据库列中存储分隔列表真的那么糟糕吗?
推荐阅读
- r - 如何在leafletProxy()中绘制数据框的全部数据?
- swift - 如何使用 Realm 持久化来自依赖库的类中的实例
- python - 二维场的功率谱密度 - Python
- express - webpackDevMiddleware & webpackHotMiddleware 降低服务器速度
- c# - 跨项目继承测试方法
- json - 在 S3 上读取 Json 文件并在 LAMBDA 上返回
- php - laravel eloquent 如何使用多个“和”进行查询?
- testing - JMeter - 长时间均匀执行样本
- kubernetes - How to Enable KubeAPI server for HPA Autoscaling Metrics
- c++ - 将 Ceres 与带有 sse/avx 的库一起使用时出错