공부/데이터베이스

GROUP BY

원클릭쓰리버그 2022. 1. 22. 18:00
728x90
2004년 보스턴 소속으로 출전한 선수들의 타격 정보
select*
from batting
where yearID = 2004 and teamID = 'BOS'

 

2004년도 보스턴 소속으로 출전해서 날린 홈런 개수
SELECT SUM(HR)
FROM batting
WHERE yearID = 2004 AND teamID = 'BOS'

 

2004년도에 가장 많은 홈런을 날린 팀은?
 =>GROUP BY 로 구현할 수 있다.

--팀별로 묶어서 뭔가를 분석하고 싶다
select teamID, count(teamID) as playerCount, sum(HR) AS homeRuns
from batting
where yearID = 2004
group by teamID

-- 팀 아이디 그룹 중 2004년에 배팅 데이터에서 팀아이디를 선택하여 
-- 플레이어 수와 홈런의 총합을 구하고 싶다.

 

--2004년도에 가장 많은 홈런을 날린 팀은?
select teamID, sum(HR) AS homeRuns
from batting
where yearID = 2004
group by teamID
order by homeRuns DESC;

 

핵심

 

--2004년도에 200홈런 이상을 날린 팀의 목록?
SELECT teamID, sum(HR) AS HomeRuns
from batting
where yearID = 2004
GROUP BY teamID
HAVING SUM(HR) >= 200
ORDER BY HomeRuns DESC
/*
--    우선 순위 정리    --
FROM		책상에서
WHERE		공을
GROUP BY	색상별로 분류해서
HAVING		분류한 다음에 빨간색은 제외하고
SELECT		갖고 와서
ORDER BY	크기 별로 나열해주세요.
*/

 

--단일 년도에 가장 많은 홈런을 날린 팀은?
SELECT teamID, sum(HR) AS HomeRuns
from batting
GROUP BY teamID, yearID
-- 그룹이 2개가 &로 취급함. 
--temaID가 같으면서 yearID가 같은 그룹
ORDER BY HomeRuns DESC

'공부 > 데이터베이스' 카테고리의 다른 글

서브 쿼리( SUBQUERY)  (0) 2022.01.26
INSERT DELETE UPDATE  (0) 2022.01.23
연습문제  (0) 2022.01.22
CASE && 집계함수  (0) 2022.01.16
DATETIME  (0) 2022.01.16