これは、ほぼすべての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