Това трябва да работи на почти всеки SQL диалект:
SELECT last_name, first_name FROM names
WHERE last_name IN (
SELECT last_name FROM names GROUP BY last_name HAVING COUNT(*) > 1
)
Все пак ще ви даде резултат като този:
Smith Jack
Smith Joe
Smith Anna
Sixpack Joe
Sixpack Eve
Най-елегантното решение за показване на това в желания формат IMO е просто да пренаредите набора от резултати програмно в клиентското приложение, вместо да дърпате всякакви неясни SQL трикове; нещо като (псевдокод):
for each row in resultset
if row[last_name] <> previous_last_name
print newline, print last_name
print ' '
print first_name