
SQL 공부중 입니다. ✍✍✍
문제
https://school.programmers.co.kr/learn/courses/30/lessons/59041
풀이
SELECT NAME, CASE
WHEN COUNT(NAME) >= 2 THEN COUNT(NAME)
ELSE NULL
END AS "COUNT"
FROM ANIMAL_INS
GROUP BY NAME
HAVING COUNT IS NOT NULL
ORDER BY NAME ASC;
두 번이상 쓰인 NAME 횟수를 조회하는 문제였습니다. NAME으로 GROUP BY (집계)하여 COUNT(NAME) 횟수를 계산하였습니다. 이때, CASE 구문을 활용하여 NULL 값을 제거하였습니다.✌✌✌
제가 작성한 풀이 이외에 아래와 같이
SELECT *
FROM (SELECT name, COUNT(name) as COUNT
FROM ANIMAL_INS WHERE NAME IS NOT NULL
GROUP BY name ORDER BY name) a
WHERE COUNT > 1
서브쿼리를 활용한 답안도 볼 수 있었습니다.🐥🐥🐥
감사합니다.