https://school.programmers.co.kr/learn/courses/30/lessons/131535
문제:동물 보호소에 들어온 동물 이름 중 두 번 이상 쓰인 이름과 해당 이름이 쓰인 횟수를 조회하는 SQL문을 작성해주세요. 이때 결과는 이름이 없는 동물은 집계에서 제외하며, 결과는 이름 순으로 조회해주세요.
답:
SELECT name,
COUNT(name) count
FROM animal_ins
WHERE name IS NOT NULL
GROUP BY name
HAVING COUNT(name)>=2
ORDER BY 1
HAVING은 GROUP BY 뒤에 온다.
GROUP BY한 결과를 가지고 필터링하고 싶을 때 HAVING을 사용.
[SQL의 작동순서 및 작성순서]
작동순서
FROM-ON-JOIN-WHERE-GROUP BY-HAVING-SELECT-DISTINCT-ORDER BY
테이블을 확인한 후, 조인 조건을 확인하고, 조인 후 추출 조건을 확인.
그 뒤로 데이터 그룹화, 추출, 중복제거 후 마지막으로 데이터를 정렬.
작성순서
SELECT-FROM-WHERE-GROUP BY-HAVING-ORDER BY