일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 그리디
- 수학
- 정수론
- 프로그래머스
- Image Classification
- 이진탐색
- 다이나믹프로그래밍
- C++
- 백준
- 이분탐색
- 문자열
- 자료구조
- 프로그래머스sql
- 구현
- 해시를사용한집합과맵
- 논문구현
- 그리디알고리즘
- 소수판정
- C언어
- C
- 정렬
- SQL
- 프로그래머스코딩테스트
- 백준알고리즘
- 프로그래머스연습문제
- 큐
- 브루트포스알고리즘
- MySQL
- 사칙연산
- 논문리뷰
- Today
- Total
초보 개발자의 이야기, 릿허브
[MySQL] 프로그래머스 SQL 중복 제거하기 본문
1. 문제이해
https://programmers.co.kr/learn/courses/30/lessons/59408?language=mysql
코딩테스트 연습 - 중복 제거하기
ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디
programmers.co.kr
위와 같은 정보를 가진 ANIMAL_INS 테이블에서
동물 보호소에 들어온 동물들의 이름이 몇개인지를 조회하는 SQL문을 작성하는 것이 목표이다.
단, 이름이 NULL인 경우는 집계하지 않으며, 중복되는 이름은 하나로 친다.
2. 문제풀이
ANIMAL_INS 테이블에서, 동물들의 이름의 개수를 세는 문제이다.
단, 이름이 NULL인 경우는 집계하지 않으며, 중복되는 이름은 하나로 친다는 조건이 있다.
이름이 NULL인 경우를 집계하지 않는다는 것은, WHERE 절의 NOT NULL 을 통해,
이름을 센다는 것은, SELECT 절의 COUNT,
그 중에서도 중복값은 허용하지 않음은 DISTINCT 를 통해 구현했다.
문법에 대한 자세한 설명은 아래를 통해 확인하자.
3. 정답
SELECT COUNT(DISTINCT NAME) AS "count"
FROM ANIMAL_INS
WHERE NAME IS NOT NULL
SELECT : 중복되지 않는 이름(DISTINCT NAME) 의 개수를 카운트(COUNT)
별칭(AS) 를 사용해 'count' 라고 따로 명명해줌.
FROM : ANIMAL_INS에서
WHERE : 이름(NAME)이 NULL 이 아니라는 조건 추가
NULL이 아니고, 중복값을 제거한 동물들의 이름이 몇개인지를 조회하는 SQL문으로,
SELECT 절의 COUNT를 이용해, DISTINCT NAME, 중복값을 제거한 이름을 세주었다.
그리고, WHERE 절의 IS NOT NULL 을 통해
NAME 중 NULL값이 아닌 조건을 충족하는 자료들만 조회하도록 했다.
이중, WHERE 절의 조건 중 하나인 NULL을 잠깐 보고 넘어가도록 하자.
WHERE 절의 NULL 조건에는 IS NULL, IS NOT NULL 이 있고, 사용법은 다음과 같다.
IS NULL : 컬럼이 NULL인 데이터를 조회 (컬럼A IS NULL)
IS NOT NULL : 컬럼이 NULL이 아닌 데이터를 조회 (컬럼A IS NOT NULL)
COUNT에 대한 간략한 설명은 이전 포스팅에 정리해놓았으니, 참고하자.
https://beginnerdeveloper-lit.tistory.com/79
[MySQL] 프로그래머스 SQL 동물 수 구하기
1. 문제이해 https://programmers.co.kr/learn/courses/30/lessons/59406 코딩테스트 연습 - 동물 수 구하기 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구..
beginnerdeveloper-lit.tistory.com
이번 포스팅을 쓰면서도 느낀거지만..
최대한 빠른시일 내에 개괄적인 SQL문법에 대한 설명글을 하나 쓰는게 좋을 것 같다. 🤣
아무래도 C, C++과 같은 언어와는 다르게 자잘한 설명으로는 한계가 있는 것 같아서,
빠른 시일 내에 꼭 정리해서 링크를 달아놓던지 해야지..👩💻
'코딩테스트 > 📒 SQL' 카테고리의 다른 글
[MySQL] 프로그래머스 SQL 동명 동물 수 찾기 (0) | 2021.11.10 |
---|---|
[MySQL] 프로그래머스 SQL 고양이와 개는 몇 마리 있을까 (0) | 2021.10.18 |
[MySQL] 프로그래머스 SQL 동물 수 구하기 (0) | 2021.10.06 |
[MySQL] 프로그래머스 SQL 최솟값 구하기 (0) | 2021.10.04 |
[MySQL] 프로그래머스 SQL 최댓값 구하기 (0) | 2021.10.04 |