Group by

CJB_ny·2022년 3월 20일
0

DataBase

목록 보기
11/29
post-thumbnail

이거 어떤 상황일때 쓰는지부터 보자

팀별로 묶어서 정보를 보곳 싶을 때는

이렇게 해야한다

그런데 주의할점이

SELECT * 하고 GROUP BY 하면 안된다.

하면 논리적으로 모순이 생김

그래서 GROUP BY로 묶어 준 정보만 추출 할 수 있다.

그래서 이렇게 GROUP BY 로 묶어준 정보만 추출 할 수 있다

그러면

이래 나옴

그래서 2004년도에 가장많은 홈런을 친 팀은?? 하면

이렇게 해주면

잘나온다.


2004년도에 200개 이상의 홈런을 친 팀 구할려묜

SELECT 의 로직 순서때문에

그래서 이렇게 하는데

주용한 부분이 GROUO BY를 하고 조건을 걸때는 WHERE 에서 거는게아니라

HAVING을 통해서 건다.


그리고 로직 순서 떄문에

어디서는 homeRuns를 사용을 못하고 어디서는 사용이 가능한데

이것을 정리를 하자면

그래서 로직 실행 순서가

FROM => 책상에서
WHERE => 공을
GROUP BY => 색상별로 분류해서
HAVING => 분류한 다음 빨간색은 제외하고
SELECT => 갖고 와서
ORDER BY => 크기별로 나열해 주세요

이런식이다.

이 순서가 중요하다

그래서

작성할 때는

이순서이고 로직 순서는

FROM => 책상에서
WHERE => 공을
GROUP BY => 색상별로 분류해서
HAVING => 분류한 다음 빨간색은 제외하고
SELECT => 갖고 와서
ORDER BY => 크기별로 나열해 주세요

이러니까 이렇게 기억 ㄱㄱ


그렇다면

단일 년도에 가장많은 홈런을 친 팀은??

여기서 WHERE 만 없애면 안되고 GROUP BY를 활용해야하는데

GROUP BY 로 teamID, yearID

할 수 있는데

이렇게 두개의 정보가 일치를 해야지만 합쳐진다.

결과를 보면 NYA 보면 이렇게 됨

그래서 기억을 해야할게

GROUP BY 를 한다고해서 꼭 하나의 열로만 그룹핑 하는게 아니라

여러개의 열을 조합을 해가지고

하나의 "키"로 사용이 가능

profile
https://cjbworld.tistory.com/ <- 이사중

0개의 댓글