Buongiorno,
ho provato direttamente dal Database ed è una query funzionante, però sicuramente mi sono spiegato male io, cioè io vorrei solo i record uguali e con il campo durata minore. Se alla query che hai postato aggiungo il campo id_appuntamento
Codice PHP:
SELECT id_appuntamento, giorno_app, ora_inizio,durata, count(*) AS conteggio, MIN(durata) as minimo
FROM appuntamento
GROUP BY giorno_app, ora_inizio
HAVING conteggio > 1
non ottengo gli id_appuntamenti che realmente sono doppioni e con durata minima