지금까지 배운 지식을 토대로 연습문제를 풀어보자.
이번 시간엔 players가 아닌 batting 테이블을 이용할 것이다.
문제를 풀기 전의 사전 정보를 적어놓았다.
playerID(플레이어id)
yearID(시즌 년도)
teamID(팀 명칭)
G_batting(출전경기+타석)
AB(타수)
H(안타)
R(출루)
2B(2루타)
3B(3루타)
HR(홈런)
BB(볼넷)
우리가 풀어볼 문제는 다음과 같이 4개이다.
1) 팀명이 보스턴인 플레이어의 정보만 출력
2) 보스턴 소속인 선수들의 수(중복 제거)
3) 보스턴 팀이 2004년도에 친 홈런 개수
4) 보스턴 팀 소속으로 단일 년도 최다 홈런을 친사람
풀이는 우측의 헤드라인을 눌러 확인하자
간단하게 WHERE 절을 이용하면 쉽게 풀 수 있다.
SELECT *
FROM batting
WHERE teamID='BOS';
집계함수 COUNT와 중복 제거를 위한 DISTINCT를 활용하면 된다.
SELECT COUNT(DISTINCT playerID)
FROM batting
WHERE teamID='BOS';--1655
집계함수 SUM과 추가적인 WHERE 절이면 된다.
SELECT SUM(HR)
FROM batting
WHERE teamID='BOS' AND yearID=2004;--222
홈런을 가장 많이 친 것이 기준이므로, HR을 내림차순 정렬한다음, TOP을 이용해 최상단의 1명만 추출해내면 된다.
SELECT TOP 1 *
FROM batting
WHERE teamID='BOS'
ORDER BY HR DESC;