[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part5: 연습문제

참치와돌고래·2022년 8월 23일
0
post-custom-banner

연습문제

지금까지 배운 지식을 토대로 연습문제를 풀어보자.
이번 시간엔 players가 아닌 batting 테이블을 이용할 것이다.
문제를 풀기 전의 사전 정보를 적어놓았다.

playerID(플레이어id)
yearID(시즌 년도)
teamID(팀 명칭)
G_batting(출전경기+타석)
AB(타수)
H(안타)
R(출루)
2B(2루타)
3B(3루타)
HR(홈런)
BB(볼넷)

우리가 풀어볼 문제는 다음과 같이 4개이다.

1) 팀명이 보스턴인 플레이어의 정보만 출력
2) 보스턴 소속인 선수들의 수(중복 제거)
3) 보스턴 팀이 2004년도에 친 홈런 개수
4) 보스턴 팀 소속으로 단일 년도 최다 홈런을 친사람

풀이는 우측의 헤드라인을 눌러 확인하자

1번 문제 풀이

간단하게 WHERE 절을 이용하면 쉽게 풀 수 있다.

SELECT *
FROM batting
WHERE teamID='BOS';

2번 문제 풀이

집계함수 COUNT와 중복 제거를 위한 DISTINCT를 활용하면 된다.

SELECT COUNT(DISTINCT playerID)
FROM batting
WHERE teamID='BOS';--1655

3번 문제 풀이

집계함수 SUM과 추가적인 WHERE 절이면 된다.

SELECT SUM(HR)
FROM batting
WHERE teamID='BOS' AND yearID=2004;--222

4번 문제 풀이

홈런을 가장 많이 친 것이 기준이므로, HR을 내림차순 정렬한다음, TOP을 이용해 최상단의 1명만 추출해내면 된다.

SELECT TOP 1 *
FROM batting
WHERE teamID='BOS'
ORDER BY HR DESC;
post-custom-banner

0개의 댓글