SQL 연습6

수랜드·2020년 12월 2일
0
post-thumbnail

여러가지 키워드 사용해보기1

이번 글에서는 이전에 만든 DB를 바탕으로 여러가지 키워드를 사용해 보겠습니다.
(DISTINCT,COUNT,GROUP BY절, HAVING절)

1 DISTINCT

SELECT nation
FROM players

선수들의 국적을 보고 싶은데 중복되는 국가들이 나옵니다.

이런 중복되는 데이터를 보고 싶지 않을 때

DISTINCT 키워드를 써서 겹치지 않는 데이터를 뽑을 수 있습니다.

SELECT DISTINCT(nation)
FROM player

중복 값을 제거하니 총 셀의 개수가 20개에서 17개로 줄었습니다.

2 COUNT

그럼 어떤 것 들이 줄었고 몇개였는지 알아보기 위해

COUNT 키워드를 써서 국가별 선수들의 수를 세어 보겠습니다.

SELECT nation,count(name)
FROM players
GROUP BY nation

프랑스, 포르투갈, 아르헨티나의 선수들이 각 2명씩 있는걸 알 수 있습니다.

3 GROUP BY

아! 여기서 COUNT키워드를 쓰고 FROM절 다음에 GROUP BY절을 다시 썼는데

GROUP BY를 쓰지 않고

SELECT nation,count(name)
FROM players

이렇게 count만 쓰게 되면

이러한 오류가 나오게 됩니다. GROUP BY를 쓰지 않고 COUNT로만 나오게 하려면

SELECT count(name)
FROM players

이렇게 한가지 컬럼의 전체 개수만 셀 수 있습니다.

GROUP BY 란 유형별로 개수를 알고 싶을 때는 컬럼에 데이터를 그룹화 할때 쓰는 것입니다.

그렇기 때문에 국가별로 개수를 세려면 GROUP BY로 유형을 묶어서 셀 수있습니다.

그럼 클럽테이블도 이용해볼까요?

SELECT ointment,count(name)
FROM clubs
GROUP BY ointment

클럽별 도시의 개수를 세어 봤습니다.

그런데 여기에서는 2개 팀 이상 들어가있는 도시를 찾으려고 합니다.

4 HAVING

여기서 쓰는게 HAVING절 입니다.

보통 조건문은 WHERE절에 쓰는데 GROUP BY절에 쓰는 조건은 HAVING절에 써야 합니다.

SELECT ointment,count(name)
FROM clubs
GROUP BY ointment
HAVING count(name)>=2

이렇게 HAVING절에 조건을 주면

2개 이상인 값만 나오게 됩니다.

profile
신입 개발자 입니다...

0개의 댓글