(테이블 이름 : Student1)
학번 | 이름 | 학과 | 생년월일 |
201210103 | 김영수 | 통계학과 | 81/12/05 |
200012546 | 최수아 | 의류학과 | 79/04/06 |
: | : | : | : |
(테이블 이름 : Student2)
학번 | 이름 | 출생 연도 | 출생월 | 출생일 |
199710112 | 김길동 | 78 | 10 | 12 |
199922048 | 이선아 | 79 | 11 | 24 |
: | : | : | : | : |
(1) 위의 두 테이블에서 생일이 같은 학생들을 검색하기 위한 SQL문장을 작성하여라.
(2) 두 테이블에서 학생들을 출생월별로 집계하고, 월별 출생학생들의 상대적인 비율을 추출하는 SQL문을 작성해 보아라.
(3) 두 테이블에서 나이가 가장 많은 학생을 검색하는 SQL문을 작성하여라.
(4) 두 테이블에서 학생들의 평균나이를 구하는 SQL문을 작성하여라.
과제군요.
힌트만 ) "두 테이블에서 " 이므로 union ( 학번, 생일 만 ) 로 붙여서 뷰를 만들 거나 인라인뷰로 with (cte) 로 만드셔서 작성하시면 됩니다.
1) 생일이 같은 경우는 group by 생일 로 처리하고 having count(*) > 1
2) group by 출생월별 값과 전체 학생수로 나누면 비율이 나오죠.
3) 나이는 DATEDIFF(dd, 생년월일, getdate() ) 로 yy 보다는 dd 가 좀더 정확하겠네요.. top 1 .... order by 나이 desc
4) 나이는 DATEDIFF(yy, 생년월일, getdate() ) 평균을 구하시면 됩니다...