💅 SQL 입문
지난 시간에는 집계 함수(COUNT, SUM, MIN, MAX 등)를 이용하여 데이터베이스에서 내가 필요한 정보만 추출하는 방법에 대해서 알아보았다. 오늘은 이전까지 알아본 내용을 토대로 간단한 연습 문제를 풀어볼 것이다.
😈 테이블 변경
이번 시간에서는 연습 문제를 풀어볼 것이지만, 기존에 사용하던 players 테이블이 아닌 batting 테이블을 이용하여 문제를 풀이할 것이다. 문제를 풀기 전, 테이블의 사전정보를 살펴보면 다음과 같다.
batting 테이블 정보
playerID(플레이어id), yearID(시즌 년도), teamID(팀 명칭), G_batting(출전경기+타석)
AB(타수), H(안타), R(출루), 2B(2루타), 3B(3루타), HR(홈런), BB(볼넷)
다음은 우리가 풀어볼 문제 리스트다.
- 팀명이 보스턴인 플레이어의 정보 출력
- 보스턴 소속인 선수들의 수 (중복 제거)
- 보스턴 팀이 2004년에 친 홈런의 개수
- 보스턴 팀 소속으로 단일년도 최다 홈런을 친 선수
😈 문제풀이
문제 1.
WHERE 절을 이용하면 쉽게 풀 수 있다.
SELECT *
FROM batting
WHERE teamID='BOS'
문제 2.
집계함수 COUNT와 중복 제거를 위한 DISTINCT를 활용하여 풀어준다.
SELECT COUNT(DISTINCT playerID)
FROM batting
WHERE teamID='BOS'
문제 3.
집계함수 SUM과 추가적인 WHERE 절이면 된다.
SELECT SUM(HR)
FROM batting
WHERE teamID='BOS' AND yearID=2004;
문제 4.
홈런을 가장 많이 친 것이 기준이기 때문에, HR컬럼을 내림차순으로 정렬한 다음, TOP을 이용해 최상단의 1명만 추출해내면 된다.
SELECT TOP 1 *
FROM batting
WHERE teamID='BOS'
ORDER BY HR DESC;
'공부 > 인프런 - Rookiss' 카테고리의 다른 글
Part 5-2-10. SQL 입문 : INSERT, DELETE, UPDATE (1) | 2024.02.12 |
---|---|
Part 5-2-9. SQL 입문 : GROUP BY (0) | 2024.02.12 |
Part 5-2-7. SQL 입문 : 집계함수 (COUNT, SUM, AVG, MAX, MIN, DISTINCT) (1) | 2024.02.05 |
Part 5-2-6. SQL 입문 : CASE (0) | 2024.02.05 |
Part 5-2-5. SQL 입문 : DATETIME (1) | 2024.02.05 |