Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 조건에 맞는 사용자 정보 조회하기
- 프로그래머스 #프로그래머스 NULL 처리하기 #NULL 처리하기
- 태블로 테이블 계산
- 강원도에 위치한 생산공장 목록 출력하기 #프로그래머스 강원도에 위치한 생산공장 목록 출력하기 #프로그래머스 #경기도에 위치한 식품창고 목록 출력하기 #프로그래머스 경기도에 위치한 식
- 조건에 부합하는 중고거래 상태 조회하기
- 저자 별 카테고리 별 매출액 집계하기
- 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기
- 프로그래머스 조건에 맞는 사용자 정보 조회하기
- 자동차 대여 기록 별 대여 금액 구하기
- SQL #DDL
- 프로그래머스 #프로그래머스 5월 식품들의 총매출 조회하기 #5월 식품들의 총매출 조회하기
- 프로그래머스 #프로그래머스 헤비 유저가 소유한 장소 #헤비 유저가 소유한 장소
- 프로그래머스 조건에 부합하는 중고거래 댓글 조회하기
- 조건에 부합하는 중고거래 댓글 조회하기
- 프로그래머스 취소되지 않은 진료 예약 조회하기 #취소되지 않은 진료 예약 조회하기
- 조건에 맞는 사용자와 총 거래금액 조회하기
- 자동차 대여 기록에서 장기/단기 대여 구분하기 #프로그래머스 자동차 대여 기록에서 장기/단기 대여 구분하기
- 가격이 제일 비싼 식품의 정보 출력하기 #프로그래머스 가격이 제일 비싼 식품의 정보 출력하기 #프로그래머스 #식품분류별 가장 비싼 식품의 정보 조회하기 #프로그래머스 식품분류별 가장 비
- 프로그래머스 #프로그래머스 입양 시각 구하기(2) #입양 시각 구하기(2) #프로그래머스 입양 시각 구하기(1) #입양 시각 구하기(1)
- 프로그래머스 #조건별로 분류하여 주문상태 출력하기 #프로그래머스 조건별로 분류하여 주문상태 출력하기
- 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기
- 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기 #프로그래머스 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기
- 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기 #프로그래머스 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기
- 프로그래머스 #프로그래머스 중성화 여부 파악하기 #중성화 여부 파악하기
- 프로그래머스 #프로그래머스 우유와 요거트가 담긴 장바구니 #우유와 요거트가 담긴 장바구니
- 프로그래머스 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기
- 프로그래머스 #프로그래머스 서울에 위치한 식당 목록 출력하기 #서울에 위치한 식당 목록 출력하기
- 프로그래머스 조건에 부합하는 중고거래 상태 조회하기
- 프로그래머스 조건에 맞는 사용자와 총 거래금액 조회하기
- 프로그래머스 #오랜 기간 보호한 동물(2) #프로그래머스 오랜 기간 보호한 동물(2)
Archives
- Today
- Total
데이터 분석
프로그래머스 - 고양이와 개는 몇 마리 있을까, 동명 동물 수 찾기 (GROUP BY, HAVING) 본문
- GROUP BY
- 집계함수 COUNT
- HAVING
고양이와 개는 몇 마리 있을까
고양이와 개가 각각 몇 마리씩 있는지 확인하기 위해 고양이와 개를 그룹지어준다. 그 후 숫자를 센다.
GROUP BY절은 행들을 소그룹화한다.
여기에 집계함수를 사용한다. 행의 수를 출력하는 함수는 크게
- COUNT(*) : NULL값을 포함한 행의 수 출력
- COUNT(표현식) : NULL값을 제외한 표현식의 행의 수 출력
으로 구한다.
지금 데이터는 NULL값이 없어 둘 중 아무거나 사용해도 좋다.
SELECT ANIMAL_TYPE, COUNT(*) COUNT
FROM ANIMAL_INS
GROUP BY ANIMAL_TYPE
ORDER BY ANIMAL_TYPE
;
+) 여기서 ORDER BY의 순서는 Cat, Dog 순으로 오름차순되어 그냥 ANIMAL_TYPE으로 정렬해도 된다. 하지만 특정값을 지정하고 싶다면,
SELECT ANIMAL_TYPE, COUNT(*) COUNT
FROM ANIMAL_INS
GROUP BY ANIMAL_TYPE
ORDER BY (CASE WHEN ANIMAL_TYPE = 'Cat' THEN 1 ELSE 2 END)
;
"Cat"을 1로 "Dog"를 2로 해서 오름차순 할 수도 있다.
동명 동물 수 찾기
GROUP BY와 집계함수로 계산된 소그룹의 조건을 걸기 위해선 HAVING을 사용해야한다.
SELECT NAME, COUNT(*) COUNT FROM ANIMAL_INS
WHERE NAME IS NOT NULL
GROUP BY NAME
HAVING COUNT(*) > 1
ORDER BY NAME
;
이름이 없는 동물은 집계에서 제외 > WHERE NAME IS NOT NULL
두 번 이상 쓰인 이름 > HAVING COUNT(*) > 1
https://school.programmers.co.kr/learn/courses/30/lessons/59041
'SQL > 프로그래머스 코딩' 카테고리의 다른 글
프로그래머스 - 오랜 기간 보호한 동물(1) (RANK) (0) | 2023.02.26 |
---|---|
프로그래머스 - 없어진 기록 찾기, 있었는데요 없었습니다 (JOIN) (0) | 2023.02.26 |
프로그래머스 - 이름이 없는 동물 아이디, 이름이 있는 동물의 아이디 (IS NULL) (0) | 2023.02.26 |
프로그래머스 - 최솟값 구하기 (MIN) (0) | 2023.02.26 |
프로그래머스 - 아픈 동물 찾기, 어린 동물 찾기 (!=) (0) | 2023.02.26 |