SELECT t1.*, count(t2.id_call) cnt FROM calls t1 LEFT JOIN calls t2 ON t1.id_route = t2.id_route AND (t1.call_start, t1.id_call, t1.duration) <= (t2.call_start, t2.id_call, t2.duration) GROUP BY (t1.id_call, t1.duration) HAVING cnt <= 3;