Dette burde virke på stort set alle SQL-dialekter:
SELECT last_name, first_name FROM names
WHERE last_name IN (
SELECT last_name FROM names GROUP BY last_name HAVING COUNT(*) > 1
)
Det vil dog give dig et resultatsæt som dette:
Smith Jack
Smith Joe
Smith Anna
Sixpack Joe
Sixpack Eve
Den mest elegante løsning til at vise dette i det ønskede format IMO er blot at omarrangere resultatsættet programmatisk i klientapplikationen i stedet for at trække alle mulige obskure SQL-stunts; noget i stil med (pseudokode):
for each row in resultset
if row[last_name] <> previous_last_name
print newline, print last_name
print ' '
print first_name