回答が非常に長い気がするのはなぜだろうか。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | /* 自己結合を用いた場合 */ SELECT DISTINCT K1.名義, K1.口座番号, K1.種別, K1.残高, K1.更新日 FROM 口座 AS K1 JOIN 口座 AS K2 ON K1.名義 = K2.名義 WHERE K1.口座番号 <> K2.口座番号 ORDER BY K1.名義, K1.口座番号; /* 集計関数と結合を用いた場合 */ SELECT K1.名義, K1.口座番号, K1.種別, K1.残高, K1.更新日 FROM 口座 AS K1 JOIN ( SELECT 名義, COUNT (名義) AS 口座数 FROM 口座 GROUP BY 名義 HAVING COUNT (名義) > 1) AS K2 ON K1.名義 = K2.名義 ORDER BY K1.名義, K1.口座番号; |
ワイ
1 2 3 4 5 6 7 | SELECT 名義, 口座番号, 種別, 残高, 更新日 FROM 口座 WHERE 名義 IN ( SELECT 名義 FROM 口座 GROUP BY 名義 HAVING COUNT (名義) > 1) ORDER BY 名義, 口座番号; |
自分自身のコードの傾向としては、以下の通り。
1・できるだけ短いコードを目指す。(美しいコードガイイヨネ)
2・「カラムA = A」は1つにしたい派。(同じこと複数書いてると入力間違えそう)
3・テスト問題はさっさと終わらせたい。(実際のデータに触れたいのであった=答えが見えている問題は興味がない?)