когда вы говорите, что у вас есть повторяющиеся строки - вы должны иметь четкое представление об уникальности для комбинации некоторых конкретных столбцов.
Если вы ожидаете, что определенные комбинации столбцов являются уникальными в указанных группах, вы можете обнаружить группы, отклоняющиеся от групп, с помощью запросов, следуя приведенному ниже шаблону.
select <your group by columns>
from <your table name>
group by <your group by predicate>
having (max(A)!=min(A) or max(B)!=min(B) or max(C)!=min(C))
Тогда вы должны решить, что делать с проблемой. Я бы предложил очистить и добавить в таблицу уникальные ограничения.
Упомянутый вами агрегатный запрос будет успешно выполнен для строк в вашей таблице, не имеющих повторяющихся значений для комбинации столбцов, которая должна быть уникальной. Используя мой пример, вы можете получить агрегаты для этой части ваших данных, используя инвертированный предикат.
Было бы что-то вроде этого
select <your aggregate functions, counts, sums, averages and so on>
from <your table name>
group by <your group by predicate>
having (max(A)=min(A) and max(B)=min(B) and max(C)=min(C))
Если вы должны включить группы, нарушающие ожидания уникальности, вы должны каким-то образом сделать квалифицированный выбор того, какой из вариантов в группе использовать - вы можете, например, перейти к последнему или первому, если должен произойти один из ваших столбцов. выразить что-то о том, когда строка была создана.