ОТВЕТИТЬ НА # 1
select * from table where id in
(
select id from
(
select id, zone
from table
group by id, zone
)
group by id
having count(1) > 1
)
ОТВЕТ НА # 2
select t2.zone, t2.time, max(t2.id) as id from
(select zone, min(time) minTime from table group by zone ) t1
join
(select id, zone, time from table) t2 on t1.zone = t2.zone and t1.minTime = t2.time
group by t2.zone, t2.time
Обратите внимание на причину, по которой мы получили максимальный идентификатор для второго запроса, это b / c, может быть большечем 1 одновременно.