La siguiente consulta devuelve elementos duplicados en table cuyos valores para las columnas column_1 y column_2 son idénticos:

SELECT column_1, column_2, COUNT(*) FROM my_table
GROUP BY column_1, column_2
HAVING count(*) > 1;

Usando esta consulta, podríamos borrar todos los elementos duplicados de forma automática mediante esta otra consulta:

DELETE FROM my_table AS main 
    USING (
        SELECT column_1, column_2, COUNT(*) FROM my_table 
        GROUP BY (column_1, column_2) 
        HAVING COUNT(*) > 1
    ) AS duplicates 
WHERE main.column_1 = duplicates.column_1 
    AND main.column_2 = duplicates.column_2;

SQLAlchemy

Esta misma consulta se puede hacer mediante SQLAlchemy de la siguiente forma:

session.execute(
    select(
        my_table.column_1, 
        my_table.column_2,
        func.count(my_table.id).label("count")
    ).from(my_table).group_by(my_table.column_1).having(
        func.count(my_table.id)
    ).all()