Allora sono ora a casa, hai fatto un grandissimo mischione.
Per ordine (nel tuo esempio)
select count(distinct mail) from CLIENTI where mail <> ''
Ritorna 6 righe.
Sto ancora aspettando di capire, sulla base dell'esempio che hai messo, quale sia il risultato atteso.
7? (il numero delle righe distinte?)
In mysql è
select count(*) from (select nome from clienti group by nome,mail) clientiraggruppati
Prendendo queste 7 righe
select nome,mail from clienti group by nome,mail
nome mail
paperino@mail.it
pluto@mail.com
Pippo pippo@mail.it
pippus qui@mail.it
Qua qua@mail.it
Qui qui@mail.it
Quo quo@mail.it
il perchè è questo motivo
select nome,mail,count(*) from clienti group by nome,mail
dove puoi vedere che c'è un doppione "pippo"
nome mail count(*)
paperino@mail.it 1
pluto@mail.com 1
Pippo pippo@mail.it 2
pippus qui@mail.it 1
Qua qua@mail.it 1
Qui qui@mail.it 1
Quo quo@mail.it 1