Una cosa così dovrebbe funzionare

codice:
SELECT A.cai, A.listino
FROM (
         SELECT cai, listino, count(*) AS quanti
         FROM tabella 
         GROUP BY listino, cai 
        ) AS A 
             left outer join
        (
         SELECT cai, listino, count(*) AS quanti
         FROM tabella 
         GROUP BY listino, cai 
         ) AS B on (A.cai = B.cai AND A.quanti < B.quanti)
WHERE B.cai IS NULL;
Per quanto riguarda l'id: ti serve? Se si, con quale criterio andrebbe scelto?