mysql - 给定这张表,如何确定下一个交货日?SQL
问题描述
我有这张表,其中列出了一个地区可用的交货天数。还给出了订单日期和具有相同订单日期和交货日期的商店的数量。
CREATE TABLE table1
(`order_date` date, `area` varchar(20), `delivery_days` varchar(20), `stores` int)
;
INSERT INTO table1
(`order_date`, `area`, `delivery_days`, `stores`)
VALUES
('2020-11-22', 'A', '1,3,5', 17),
('2020-11-25', 'A', '1,3,5', 4),
('2020-11-26', 'B', '2,4,6', 9),
('2020-11-28','B', '2,4,6', 6);
您可以将可用的交货天数解读为(周一为 1,周二为 2,周三为 3...周六为 6)。
话虽如此,如果来自 A 区的商店在 2020-11-22 星期日订购,则最近的交货日是第二天,1 星期一。如果同一地区的商店在 2020-11-25 星期三下单,则最近的交货日为上述日期后的 2 天,即星期五 5 日。
order_date area delivery_days stores
2020-11-22 A 1,3,5 17
2020-11-25 A 1,3,5 4
2020-11-26 B 2,4,6 9
2020-11-28 B 2,4,6 6
我想做的是将这些信息汇总到一个看起来像这样的表中——其中每列计算属于交付类别的商店数量,然后获得相对于商店总数的百分比。
area total_stores next_day_delivery percent 2_day_delivery percent 3_day_delivery percent
A 21 17 81 4 19
B 15 9 60 6 40
我怎样才能做到这一点?这是 sqlfiddle:http ://sqlfiddle.com/#!9/784e1/1
解决方案
推荐阅读
- python-3.x - skmultilearn MLARAM 引发 Keyerror:0
- node.js - 查询时node.js条带UnhandledPromiseRejectionWarning
- vue.js - VueJS 基于 Random Slug 的 URL 的最佳方法
- intellij-idea - 我班级上的数字图标是什么意思?
- kubernetes - 为 AKS 群集使用托管标识功能的最佳方法是什么?
- android - Android Studio Flutter - 虚拟设备正在加载或卡住
- docker - x509:由未知机构签署的证书(可能是因为“crypto/rsa:...authority certificate”osmacbook”)
- javascript - 如何实时查询firestore wrt?
- c++ - for 循环是否会在 C++ 中创建向量、数组或任何其他数据类型的副本?
- php - 结合这两个查询并返回最匹配的一个