오랑우탄의 반란
[프로그래머스] 동명 동물 수 찾기 (MySQL) WHERE(*), REGEXP 본문
반응형
오늘도 오랑이는 문제를 풉니다.
동명 동물 수 찾기
풀이 과정
- 예전에 풀었던 문제를 다시 살펴봤습니다.
- 기존 쿼리와 새로 작성한 쿼리를 비교해보면 having 으로 훨씬 간편하게 푼 걸 볼 수 있습니다.
- 다만 두번째 풀이에서 처음에 COUNT(*) 로 해서 오답이 나왔는데, 문제에서 NULL 값은 제외하라는 조건을 유의해서 COUNT(NAME) 으로 변경해야 정답이 나옵니다.
COUNT(칼럼) 은 NULL 값 제외하고 집계됨
COUNT(*) 은 NULL 값의 행도 모두 집계됨
최종 코드
# AFTER
SELECT NAME, COUNT(NAME) AS COUNT
FROM ANIMAL_INS
GROUP BY 1
HAVING COUNT(NAME) >=2
ORDER BY 1
# BEFORE
SELECT NAME, COUNT
FROM (
SELECT NAME, COUNT(1) AS COUNT
FROM ANIMAL_INS
WHERE NAME IS NOT NULL AND NAME != ''
GROUP BY NAME
) a
WHERE COUNT >= 2
ORDER BY NAME
첫 풀이보다 훨씬 간단한 풀이가 나왔지요?
(정말 복잡하게 풀었었네요..)
조건 함수 REGEXP '조건1|조건2'
'~ 중 중 하나 이상 포함된' 조건에 대해 아래 함수 사용 (REGEXP '옵션1|옵션2|옵션3')
WHERE OPTIONS REGEXP '통풍시트|열선시트|가죽시트'
오랑우탄이 영어를 하고 오랑이가 쿼리마스터가 되는 그날까지~
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
반응형
'SQL > 프로그래머스' 카테고리의 다른 글
프로그래머스 | 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기 (MySQL) (0) | 2024.07.09 |
---|---|
프로그래머스 | 입양 시각 구하기(2) - SET 함수 (MySQL) (2) | 2024.07.08 |
프로그래머스 | 자동차 대여 기록 별 대여 금액 구하기 (MySQL) (0) | 2024.07.04 |