我有下表:
团队 | 电话号码 | 订单号 | 通话日期 | 订单日期 |
---|---|---|---|---|
TM1 | 2222222222 | 26699443 | 2021-01-28 | 2021-02-05 |
TM1 | 1111111111 | 26699450 | 2021-01-22 | 2021-01-22 |
TM2 | 5555555555 | 26699466 | 2021-02-22 | 2021-02-23 |
TM2 | 5555555555 | 26699467 | 2021-01-22 | 2021-02-01 |
TM3 | 7777777777 | 26699488 | 2020-12-10 | 2021-01-03 |
我想计算每个团队每个月从接到电话到下单的平均时间。这是我的查询:
SELECT
Team,
MONTH(CallDate),
AVG(DATEDIFF(day,CallDate,OrderDate))
FROM MyTab AS C
GROUP BY Team, MONTH(CallDate)
我想计算 CallDate 和 OrderDate 之间的差异,然后 然后应用每个团队每个月的平均值。
答案 0 :(得分:5)
数据中没有时间部分,那么您打算如何计算时间?您想将天数乘以 24 还是 8(官方时间)?请提一下。如果 orderdate 和 calldate 是同一日期,那么 day 是 0 还是 1?我已经将其视为 1 天。
计算日差:
SELECT
Team,
format(CallDate,'yyyy-MMMM') Month,
AVG(DATEDIFF(day,CallDate,OrderDate)+1) AverageDayTaken
FROM MyTab AS C
GROUP BY Team, format(CallDate,'yyyy-MMMM')
输出:
计算工作时差(每天 8 小时):
SELECT
Team,
format(CallDate,'yyyy-MMMM') Month,
AVG(DATEDIFF(day,CallDate,OrderDate)+1)*8 AverageWorkingHourTaken
FROM MyTab AS C
GROUP BY Team, format(CallDate,'yyyy-MMMM')