Cela devrait fonctionner sur à peu près tous les dialectes SQL:
SELECT last_name, first_name FROM names
WHERE last_name IN (
SELECT last_name FROM names GROUP BY last_name HAVING COUNT(*) > 1
)
Il vous donnera un jeu de résultats comme celui-ci, cependant:
Smith Jack
Smith Joe
Smith Anna
Sixpack Joe
Sixpack Eve
la solution la plus élégante pour afficher ce dans le format désiré est l'OMI juste réorganiser le jeu de résultats par programme dans l'application client au lieu de tirer toutes sortes de cascades SQL obscures; quelque chose comme (pseudo-code):
for each row in resultset
if row[last_name] <> previous_last_name
print newline, print last_name
print ' '
print first_name
Quel serveur de base de données utilisez-vous? –
Chaque base de données possède sa propre recette, mais celles-ci sont spécifiques à la base de données. –
@Peter: Quoi ...? –