일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 정보처리기사
- scanner
- 메서드
- order by
- Git
- 개발자
- 데이터 조회
- 리눅스
- StringBuilder
- 스프링
- sql문
- 정보처리기사필기요약
- DML
- String클래스
- github
- mybatis
- 프론트엔드
- JavaScript
- 입출력
- 예외처리
- Linux
- where
- SQL
- BufferedReader
- 클래스
- 백엔드
- MySQL
- 프로그래밍
- 웹개발
- select
- Java
- 프로그래머스 SQL
- html
- 알고리즘
- 프로그래머스 sql 고득점 kit
- 백준
- 자바
- 자바스크립트
- select문
- 형변환
- Today
- Total
ToBe끝판왕
[ 프로그래머스 / SQL ] GROUP BY - 동명 동물 수 찾기 본문
동명 동물 수 찾기
Programmers의 SQL 고득점 Kit
GROUP BY 문제
▶ 해당 문제 링크
https://programmers.co.kr/learn/courses/30/lessons/59041
정답 및 풀이
▶ GROUP BY 절
• 데이터들을 원하는 그룹으로 나눌 수 있다.
• 나누고자 하는 그룹의 칼럼명을 SELECT절과 GROPU BY절 뒤에 추가하면 된다.
• FROM절과 WHERE절 뒤에 온다.
• 집계함수와 함께 사용되는 상수는 GROUP BY절에 추가하지 않아도 된다.
• GROUP BY 절
SELECT 컬럼명, 그룹함수
FROM 테이블명
GROUP BY 그룹대상;
▶ HAVING 절
• GROUP BY 절을 통해 그룹을 짓고, 각 그룹에 조건을 부여할 때 사용한다.
• GROUP BY 절 다음에 위치한다.
• HAVING 절
SELECT 컬렴명, 그룹함수
FROM 테이블명
GROUP BY 그룹대상
HAVING 그룹함수 포함 조건;
※ WHERE 절과 HAVING 절 차이
• WHERE 절은 모든 개별 행에 조건을 줄 수 있다 하지만 HAVING 절은 GROUP BY 된 이후 특정한 그룹의
행에만 조건을 줄 수 있다.
• 집계함수는 HAVING절과 함께 사용할 수 있지만 WHERE 절은 HAVE절에 포함된 하위 쿼리에 있지 않으면
집계함수랑 함께 사용할 수 없다.
• HAVING절은 GROUP BY 절 뒤에 사용하고 WHERE 절은 앞에 사용한다
※ 집계함수
▶ 정답
• 동물의 이름 개수를 조회하는 것이므로, COUNT 함수를 NAME에 적용해야 한다.
• 동물의 이름이 없는 경우는 집계하지 않으므로 WHERE 조건절에 사용한다.
• 동물의 이름을 그룹화하여 개수를 세고 두 번 이상 쓰인 이름에 대하여 그룹에 COUNT를 사용하여 조건절로 적용한다.
• 결과는 이름순으로 나오게 정렬해야 하므로 ORDER BY를 맨 마지막에 써준다.
SELECT NAME, COUNT( NAME )
FROM ANIMAL_INS
WHERE NAME IS NOT NULL
GROUP BY NAME
HAVING COUNT( NAME ) >= 2
ORDER BY NAME;
'■ 프로그래밍 SKILLS > SQL' 카테고리의 다른 글
[ 프로그래머스 / SQL ] GROUP BY - 입양 시각 구하기(2) (0) | 2022.06.11 |
---|---|
[ 프로그래머스 / SQL ] GROUP BY - 입양 시각 구하기(1) (0) | 2022.06.11 |
[ 프로그래머스 / SQL ] GROUP BY - 고양이와 개는 몇마리 있을까 (0) | 2022.06.11 |
[ 프로그래머스 / SQL ] SUM, MAX, MIN - 중복 제거하기 (0) | 2022.06.10 |
[ 프로그래머스 / SQL ] SUM, MAX, MIN - 동물 수 구하기 (0) | 2022.06.10 |