You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

按plant、segment、model维度统计承诺日期平均变动及去重订单数

数据统计需求

需在segment、plant、model三个维度的聚合粒度下,计算当前承诺日期(currentprmdate)相对7天前承诺日期(prmdate7)、14天前承诺日期(prmdate14)、28天前承诺日期(prmdate28)的平均天数差,同时统计该聚合粒度下的去重订单号(ordernumber)数量。
具体计算规则:

  • 7天平均交期偏移:currentprmdate与prmdate7天数差的平均值
  • 14天平均交期偏移:currentprmdate与prmdate14天数差的平均值
  • 28天平均交期偏移:currentprmdate与prmdate28天数差的平均值
  • 固定分组维度:segment、plant、model
样例数据

输入表结构与样例值

ordernumbersegmentplantmodelcurrentprmdateprmdate7prmdate14prmdate28
V89121vinotsChikooHJ7815/6/20215/5/20215/1/20215/7/2021
LM12781vinotsChikooHJ7815/17/20215/11/20215/15/20215/10/2021
JK9812vinotsChikooHJ7815/3/20214/28/20214/25/20214/20/2021
LP18921VimarJolieMK2414/3/20213/27/20213/21/20213/20/2021
BN1231VimarJolieMK2416/10/20216/5/20216/3/20216/1/2021
LO1231VimarJolieMK2417/15/20227/11/20227/13/20227/7/2022

期望输出结构与样例结果

segmentplantmodelAverage 7 dayAverage 14 dayAverage 28 daydistinct number of orders
vinotsChikooHJ781456.33
VimarJolieMK2415.37.310.33
相关DDL
-- 输入表建表语句
create table input
(ordernumber varchar(40),
segment varchar(20),
plant varchar(10),
model varchar(15),
currentprmdate date,
prmdate7 date,
prmdate14 date,
prmdate28 date)

-- 输入表样例数据插入语句
insert into input values
('V89121','vinots','Chikoo','HJ781','5/6/2021','5/5/2021','5/1/2021','5/7/2021'),
('LM12781','vinots ','Chikoo','HJ781','5/17/2021','5/11/2021','5/15/2021','5/10/2021'),
('JK9812','vinots','Chikoo','HJ781','5/3/2021','4/28/2021','4/25/2021','4/20/2021'),
('LP18921','Vimar','Jolie','MK241','4/3/2021','3/27/2021','3/21/2021','3/20/2021'),
('BN1231','Vimar','Jolie','MK241','6/10/2021','6/5/2021','6/3/2021','6/1/2021'),
('LO1231','Vimar','Jolie','MK241','7/15/2022','7/11/2022','7/13/2022','7/7/2022')

-- 输出表建表语句
create table output
(segment varchar(20),
plant varchar(20),
model varchar(40),
avg7day float,
avg14day float,
avg28day float,
distinctorders int)

-- 输出表样例结果插入语句
insert into output values
('vinots','Chikoo','HJ781','4','5','6.3','3'),
('Vimar','Jolie','MK241','5.3','7.3','10.3','3')
实现代码(MySQL语法)
INSERT INTO output
SELECT
    TRIM(segment) AS segment,
    TRIM(plant) AS plant,
    TRIM(model) AS model,
    ROUND(AVG(DATEDIFF(currentprmdate, prmdate7)),1) AS avg7day,
    ROUND(AVG(DATEDIFF(currentprmdate, prmdate14)),1) AS avg14day,
    ROUND(AVG(DATEDIFF(currentprmdate, prmdate28)),1) AS avg28day,
    COUNT(DISTINCT ordernumber) AS distinctorders
FROM input
GROUP BY TRIM(segment), TRIM(plant), TRIM(model);

注意:样例插入数据中LM12781对应的segment字段值尾部带多余空格,用TRIM()函数处理后可保证分组结果匹配预期;不同SQL引擎的日期差函数不同,如PostgreSQL直接用日期相减currentprmdate - prmdate7、SQL Server用DATEDIFF(day, prmdate7, currentprmdate),替换对应函数即可。

内容的提问来源于stack exchange,提问作者user3369545

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 13:21:21