这是表的基本设置(仅存在相关列的 DDL)。MySQL 版本 8.0.15
目的是显示订单之间的平均日期差异间隔。
CREATE TABLE final (
prim_id INT(11) NOT NULL AUTO_INCREMENT,
order_ID INT(11) NOT NULL,
cust_ID VARCHAR(45) NOT NULL,
created_at DATETIME NOT NULL,
item_name VARCHAR(255) NOT NULL,
cust_name VARCHAR(255) NOT NULL,
PRIMARY KEY (prim_id),
COLLATE='latin1_swedish_ci'
ENGINE=InnoDB
AUTO_INCREMENT=145699
附加信息:
cust ID -> cust_name (one-to-many)
cust_ID -> order_ID (one-to-many)
order ID -> item_name (one-to-many)
order ID -> created_at (one-to-one)
prim_id -> *everything* (one-to-many)
我曾想过使用 min(created_at) 和 max(created_at) 但这将排除最旧和最新之间的所有订单。我需要一个更精致的解决方案。
最终结果应该是这样的:
有关所有订单之间的平均时间间隔的信息(不仅仅是最小和最大,因为经常有两次以上的时间),以天为单位,在显示客户名称 (cust_name) 的列旁边。