Mar*_*mes 2 sql t-sql sql-server average
我有下表:
| 团队 | 电话号码 | 订单号 | 通话日期 | 订购日期 |
|---|---|---|---|---|
| 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)
Run Code Online (Sandbox Code Playgroud)
我想计算 CallDate 和 OrderDate 之间的差异,然后为每个团队应用每个月的平均值。
数据中没有时间部分,所以您打算如何计算时间?您想将天数乘以 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')
Run Code Online (Sandbox Code Playgroud)
输出:
计算工时差(每天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')
Run Code Online (Sandbox Code Playgroud)