Rookiss Part5 데이터베이스 : 집계함수와 연습문제
🙇♀️집계함수와 연습문제
- COUNT
- SUM
- AVG
- MIN
- MAX
🪐함수의 이용
COUNT
SELECT COUNT(*)
FROM dbo.players;
- ‘*‘붙일 수 있는 애는 COUNT가 유일
SELECT COUNT(birthYear)
FROM players;
- 집계함수는 집합이 null이면 무시
DISTINCT
SELECT DISTINCT birthCity
FROM players;
SELECT DISTINCT birthYear, birthMonth, birthDay
FROM players
ORDER BY birthYear;
- 집계함수(DISTINCT 집합)
SELECT COUNT(DISTINCT birthCity) FROM players;
AVG
- 선수들의 평균 weight 구해보자 (pound?)
SELECT AVG(weight) FROM players;
SELECT SUM(weight) / COUNT(weight) FROM players;
- 선수들의 평균 weight 구해보자 (pound?)
- 단, weight = NULL인 경우라면 weight = 0로 친다
SELECT AVG(CASE WHEN weight IS NULL THEN 0 ELSE weight END) FROM players;
MIN, MAX
- MIN MAX
SELECT MIN(weight), MAX(weight) FROM players;
🪐연습문제
야구 데이터베이스 키워드 정보
- playerID (선수ID)
- yearID (시즌 년도)
- teamID (팀 명칭, ‘BOS’ = 보스턴)
- G_batting (출전 경기 + 타석)
- AB (타수)
- H (안타)
- R (출루)
- 2R (2루타)
- 3R (3루타)
- HR (홈런)
-
BB (볼넷)
- 보스턴 소속 선수들의 정보만 모두 출력
SELECT * FROM batting WHERE teamID = 'BOS'
- 보스턴 소속 선수들의 수는 몇명? (단, 중복은 제거)
SELECT COUNT(DISTINCT playerID) FROM batting WHERE teamID = 'BOS'
- 보스턴 팀이 2004년도에 친 홈런 개수
SELECT SUM(HR) FROM batting WHERE teamID = 'BOS' AND yearID = 2004
- 보스턴 팀 소속으로 단일 년도 최다 홈런을 친 사람의 정보
SELECT TOP 1 * FROM batting WHERE teamID = 'BOS' ORDER BY HR DESC
- 위 사람의 정보
SELECT * FROM players WHERE playerID = 'ortizda01'