Вы можете использовать COUNT(DISTINCT unique_id)
, чтобы найти значения consecutive_id
, которые имеют различные unique_id
.
SELECT consecutive_id
FROM test
GROUP BY consecutive_id
HAVING COUNT(DISTINCT unique_id) > 1
Затем вы можете объединить это с вашей исходной таблицей, сгруппировать по unique_id
и consecutive_id
и получить строки, у которых просто есть счет 1
, что означает, что они не равны остальным группа.
Поскольку может быть несколько выбросов, вам необходим другой уровень подзапроса, который просто получает минимальный выброс для каждого последовательного идентификатора.
SELECT consecutive_id, MIN(id) as id
FROM (
SELECT a.consecutive_id, MIN(id) AS id
FROM test AS a
JOIN (
SELECT consecutive_id
FROM test
GROUP BY consecutive_id
HAVING COUNT(DISTINCT unique_id) > 1) AS b
ON a.consecutive_id = b.consecutive_id
GROUP BY a.consecutive_id, a.unique_id
HAVING COUNT(*) = 1) AS x
GROUP BY consecutive_id
DEMO