已要求我制作Power BI报告,其中显示有关组织服务台的一些详细信息。 我已经很容易做到了,但是,有一件我想不通的事情:他们要求我显示每个支持分析师解决票证所需的平均时间。 问题是:我只需要计算平均每天的8:00 AM至6:00 PM之间的平均时间。这意味着一天只有10个小时。我尝试在SQL(MySQL)中执行此操作,但没有任何结果。
很抱歉,如果这是一个愚蠢的问题,我仍在学习SQL和Power BI。
我尝试过:
CASE WHEN EXTRACT(HOUR FROM tick.CREATED) >= 8 AND
EXTRACT(HOUR FROM tick.TIME_CLOSED) <= 18 AND
weekday(tick.CREATED) not in (6,7) THEN
TIMESTAMPDIFF(HOUR,tick.CREATED,tick.TIME_CLOSED) END
但是我不知道一种跳过小时数并继续计算第二天小时数的方法。
答案 0 :(得分:0)
尝试一下,请更改列名,如果需要,可以每天添加一个组
SELECT AVG(TIMESTAMPDIFF(SECOND,`from`,`to`))
FROM (
SELECT `to`
,CASE
-- if saturday then start date will be next monday first hour
WHEN weekday(`from`) = 6 then CONCAT(DATE(DATE_ADD(`from`, INTERVAL 2 DAY)),' 08:00:00')
-- if sunday then start date will be next monday first hour
WHEN weekday(`from`) = 7 then CONCAT(DATE(DATE_ADD(`from`, INTERVAL 1 DAY)),' 08:00:00')
-- if created outside business time then next day first hour
WHEN `from` between CONCAT(DATE(`from`),' 18:00:00') and CONCAT(DATE(DATE_ADD(`from`, INTERVAL 1 DAY)),' 08:00:00') then CONCAT(DATE(DATE_ADD(`from`, INTERVAL 1 DAY)),' 08:00:00')
ELSE `from`
END `from`
FROM ticket
WHERE `from` is not null
AND `to` is not null
) t
WHERE DATE(`from`) = DATE (`to`); -- if you want only ticket closed same day, its optional