Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Crie uma consulta para obter a contagem de chamadas incompletas agrupadas por 2 campos


Você pode unir a tabela com uma consulta agregada que recupera o mínimo call_time por call_id de chamadas inacabadas. Uma chamada inacabada é uma chamada que não tem registro onde proceed_wait = 0 .
select t.queue_num_curr, t.ast_num_curr, count(*)
from mytable t
inner join (
    select call_id, min(call_time) call_time
    from mytable 
    group by call_id
    having max(proceed_wait = 0) = 0
) tmin on tmin.call_id = t.call_id and tmin.call_time = t.call_time
group by t.queue_num_curr, t.ast_num_curr
order by t.queue_num_curr, t.ast_num_curr

Demonstração no DB Fiddle :
queue_num_curr | ast_num_curr | count(*)
-------------: | -----------: | -------:
          9004 |            2 |        1
          9010 |            2 |        2
          9010 |            3 |        1
          9010 |            5 |        1

NB:acho que nos resultados, queue_num = 9004 deve ter ast_num = 2 em vez de 1 (que deve corresponder a call_id 49c43ad ).