일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 파이썬
- 딥러닝
- 텍스트마이닝
- 데이터베이스
- 코딩테스트
- numpy/pandas
- 연습문제
- 혼공머신
- 데이터입출력구현
- 자바 실습
- CNN
- 자바
- html/css
- 중학수학
- 파이썬라이브러리
- 컴퓨터비전
- 정수와유리수
- 컴퓨터구조
- JSP/Servlet
- SQL
- 중학1-1
- 정보처리기사실기
- 운영체제
- CSS
- 머신러닝
- 정보처리기사필기
- C++
- pandas
- 영어공부
- 데이터분석
- Today
- Total
클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지
그룹 함수와 윈도우 함수 8 - 미션 문제 풀기 및 단원 마무리하기 본문
이제 미션 문제를 풀어볼 것이다. 이번 단원은 많이 어려워서 과연 미션 문제를 하나라도 풀 수 있을지 의문이 든다. 그래도 하나씩 차근차근 단계를 따라가 보면 반드시 문제를 풀 수 있다.
미션 1 - 키 순서대로 줄 서보기
1. 테이블 조회하기
2. 순위함수를 사용해서 키와 이름을 오름차순으로 정렬하기
뭔가 틀렸다고 한다. 정렬이 잘 되지 않은 것 같다. 다시 코드를 작성해 보자.
3. 정렬 순서를 바꿔서 코드 수정하기
문제를 잘 풀었다. 무척 어려울 줄 알았는데 충분히 풀 수 있었다.
미션 2 - B등급 누가 받을까
1. 테이블 조회하기
우선 B등급을 받는 학생들의 번호를 출력하기 위해서 ID와 성적 정보가 담겨있는 STUDENT 테이블을 통해 상위 30% 초과, 상위 70% 이내 학생들의 ID를 확인해 볼 것이다.
2. 그룹 내 비율 함수 CUME_DIST()를 이용하여 학생들의 점수를 내림차순을 기준으로 누적 백분율 구하기
ID와 점수를 조회하고, 점수를 기준으로 내림차순 정렬하여 누적 백분율을 계산했다. 마지막으로 ID를 기준으로 오름차순으로 정렬해 주었다.
3. FROM절 서브쿼리로 활용하여 누적 백분율이 상위 30% 초과(0.3 초과), 상위 70% 이내(0.7 이하)를 만족하는 학생들에 대해서 ID, 점수, 누적 백분율을 조회
이 학생들 중에서 상위 30% 초과, 70% 이내를 만족하는 핵생들을 조회했다.
이 문제는 많이 어려워서 헬퍼에게 물어보면서 풀었다. 다음에 꼭 다시 풀어볼 문제이다.
미션 3 - 점수 평균
1. 테이블 조회하기
STUDENT 테이블에는 ID, 학과, 학년 정보가 담겨있고 COURSE_SCORE 테이블에는 학생 ID, 수업 이름, 점수 정보가 담겨있다. STUDENT 테이블의 ID와 COURSE_SCORE 테이블의 학생 ID를 기준으로 JOIN을 이용하여 결합하고, 수업 이름과 학과에 대해서 ROLLUP을 이용하여 수업/학과별 평균, 수업별 평균, 전체 평균을 구해볼 것이다.
2. JOIN을 사용하여 각 테이블의 ID와 학생 ID를 기준으로 결합하기
STUDENT 테이블과 COURSE_SCORE 테이블을 INNER JOIN으로 결합한다. 이때, 각 테이블의 ID와 학생 ID를 기준으로 결합해야 한다.
2. ROLLUP 함수로 점수에 대한 평균 구하기
위의 쿼리에서 얻은 결과에 대해 수업 이름(COURSE_NAME)과 학과(DEPARTMENT)에 대해 ROLLUP을 사용하여 평균 점수를 계산한다. 그런 다음 AVG(SCORE)를 사용하여 각 그룹의 평균 점수를 계산한다.
하지만 이런 오류가 떴다. 이 오류는 사용하고 있는 데이터베이스에서 ROLLUP 문법이 잘못 적용되었기 때문에 발생한 것이다. ROLLUP은 GROUP BY와 함께 사용해야 하므로 코드를 다시 수정해 보겠다.
3. 코드 다시 수정하기
이렇게 해서 수업별 평균, 학과별 평균, 전체 평균도 함께 출력했다.
4장을 닫으며
학습을 마치고
이로써 SQL 심화 과정 학습을 모두 마쳤다. 미션 문제 두 문제는 스스로 푼 게 아니라 다음에 꼭 복습을 해볼 것이다. 오늘도 오후에 일정이 있어서 이제 공부할 시간이 20분도 남지 않았다. 저녁에는 SQL 책으로 아직 학습하지 못한 스토어드 프로시저에 대해서 공부해 볼 생각이다.
그동안 4주 차의 모든 과정을 단 3일 동안 공부하느라 정말 수고가 많았다.
'알고리즘 및 자료 관리 > SQL' 카테고리의 다른 글
스토어드 프로시저 2 - 스토어드 함수와 커서(SQL 공부 끝) (0) | 2024.10.24 |
---|---|
스토어드 프로시저 1 - 스토어드 프로시저 사용 방법 (0) | 2024.10.24 |
그룹 함수와 윈도우 함수 7 - 그룹 함수 2~3 : ROLL UP, CUBE, GROUPING SETS (0) | 2024.10.24 |
그룹 함수와 윈도우 함수 6 - 그룹함수 1 : GROUP BY (0) | 2024.10.24 |
그룹 함수와 윈도우 함수 5 - 윈도우 함수 4 : 그룹 내 비율 함수 2 <실습 문제 및 퀴즈 문제 풀기> (0) | 2024.10.24 |