Rookiss Part5 데이터베이스 : GROUP BY
🙇♀️GROUP BY
GROUP BY는 묶어서 분석하고 싶을 떄 사용!
🪐GROUP BY의 예시
GROUP BY의 예시
- 2004년도에 가장 많은 홈런을 날린 팀은?
SELECT * FROM batting WHERE yearID = 2004 ORDER BY teamID;
2004년에 batting테이블에서 팀별로 나열
- 팀별로 묶어서 뭔가를 분석하고 싶다 -> Grouping
SELECT teamID, COUNT(teamID) AS playerCount, SUM(HR) AS homeRuns FROM batting WHERE yearID = 2004 GROUP BY teamID
2004년에 batting테이블에서 팀별로 묶고 teamID, COUNT(teamID) AS playerCount, SUM(HR) AS homeRuns을 출력
GROUP BY는 SELECT에 GROUP BY에서 사용한 변수들, 집계함수만 사용가능 하다
- 2004년도에 가장 많은 홈런을 날린 팀은?
SELECT TOP 1 teamID, SUM(HR) AS homeRuns FROM batting WHERE yearID = 2004 GROUP BY teamID ORDER BY homeRuns DESC
2004년 베팅에 팀별로 묶고 팀아디, 홈런합중 탑을 홈런합의 내림차순으로 출력
- 2004년도에 200홈런 이상을 날린 팀의 목록?
SELECT teamID, SUM(HR) AS homeRuns FROM batting WHERE yearID = 2004 GROUP BY teamID HAVING SUM(HR) >= 200 ORDER BY homeRuns DESC
2004년 베팅에 팀별로 묶고 홈런의 합이 200개가 넘는 팀중에 홈런합의 내림차순으로 팀아디, 홈런 합을 출력
- 단일 년도에 가장 많은 홈런을 날린 팀은?
SELECT teamID, yearID, SUM(HR) AS homeRuns FROM batting GROUP BY teamID, yearID ORDER BY homeRuns DESC
베팅에서 팀아디, 년아디를 그룹핑하고 홈런합의 내림차순으로 팀아디, 년아디, 홈런합을 출력
– BOS 2004 – BOS 2005
🪐로직 순서 정리
- FROM 책상에서
- WHERE 공을
- GROUP BY 색상별로 분류해서
- HAVING 분류한 다음에 빨간색은 제외하고
- SELECT 갖고 와서
- ORDER BY 크기 별로 나열해주세요