午前問題はやっぱり分からん
平成18年春のソフトウェア開発技術者試験の午前問題。
"社員"表に対して次の SQL を実行した結果として,正しいものはどれか。
SQLはこんな感じ。
SELECT DISTINCT S1.生年 FROM 社員 AS S1,社員 AS S2 WHERE S1.生年 >= S2.生年 GROUP BY S1.生年 HAVING COUNT(*) <= 3
んで、社員テーブルはこんな感じ
社員番号 | 社員名 | 生年 |
---|---|---|
00001 | 織田 信夫 | 1943 |
00002 | 武田 信二 | 1968 |
00003 | 柴田 勝男 | 1970 |
00004 | 浅井 長吉 | 1943 |
00005 | 三浦 一郎 | 1953 |
00006 | 今川 義一 | 1954 |
00007 | 羽柴 吉秀 | 1962 |
00008 | 毛利 輝夫 | 1975 |
00009 | 伊達 正雄 | 1961 |
00010 | 細川 太郎 | 1957 |
肝心の答えは「1953」だけになるんだそうな。
・・・なんでだ?なんとなく生年のデカイ順に3件出てきそうなんだけど。もっと言うと、全件出そうな気がしてきた。会社のDBを使って試してみよう。