Puede usar esta consulta para eliminar todas las entradas duplicadas, dejando la primera:
DELETE d
FROM discog d
JOIN discog d1 ON d1.artist = d.artist AND d1.track = d.track AND d1.year < d.year;
Actualizar
Una solución alternativa que debería ser más eficiente para tablas realmente grandes es crear una copia, utilizando un índice ÚNICO en las filas para evitar la inserción duplicada:
CREATE TABLE discog_copy (id INT, artist VARCHAR(50), track VARCHAR(50), year INT);
ALTER TABLE discog_copy ADD UNIQUE KEY (artist, track);
INSERT IGNORE INTO discog_copy SELECT * FROM discog ORDER BY year;
La clave única está en la combinación del nombre del artista y el nombre de la pista, por lo que permitirá que los artistas tengan diferentes pistas y diferentes artistas tengan el mismo nombre de pista. Porque el SELECT
parte de la consulta tiene ORDER BY
año, insertará la combinación (artista, pista, año) con el año más bajo primero y luego no se insertarán otros registros idénticos (artista, pista) debido a la clave duplicada.