0

What I want to do is show the average number of minutes a technician has worked on each ticket, but only where the average is greater than or equal to the overall average minutes per ticket. But you can't use avg on datetime.

I know this is quite wrong, but this is what I'm starting with:

select user_firstname + ' ' + user_lastname as technician_name, 
avg(ticket_requestdate - ticket_closeddate) as average_minutes_per_ticket
from hd_users
    join hd_tickets on ticket_requestor_id=user_id
where user_is_technician = '1' 
having avg(ticket_requestdate - ticket_closeddate) >=
        (select avg(ticket_requestdate - ticket_closeddate) from hd_users)
4

1 回答 1

2

我会在子查询中使用 datediff() 和分钟

datediff(minute,datestart,dateend)

然后你得到 int 的分钟数,然后你可以做 avg()

或者

avg(datediff(minute,datestart,dateend))

----编辑----我猜了一下,因为我不知道你的表结构,但是这个呢

select user_firstname + ' ' + user_lastname as technician_name, 
avg(Datediff(minute,ticket_requestdate,ticket_closeddate)) as average_minutes_per_ticket
from hd_users
join hd_tickets on ticket_requestor_id=user_id
where user_is_technician = '1' 
GROUP BY user_firstname, user_lastname 
having avg(Datediff(minute,ticket_requestdate,ticket_closeddate)) >=
    (select avg(Datediff(minute,ticket_requestdate,ticket_closeddate)) from hd_users)
于 2013-10-11T15:51:14.733 回答