WITH A AS(
SELECT NAME, COUNT(NAME) AS COUNT
FROM ANIMAL_INS
WHERE NAME IS NOT NULL
GROUP BY NAME
ORDER BY NAME )
SELECT *
FROM A
WHERE COUNT >= 2
;
<포인트 정리>
1. 저게 일단 인라인 뷰로 테이블을 만들어놓고, 거기다가 WHERE로 조건을 걸어야 한다.
2. GROUP BY는 GROUP 을 만들고 그 그룹에다가 다중행 연산을 위해 사용한다고 일단은 정리하자. 그래야 안헷갈림.
3. ORDER는 어지간하면 중복해서 들어가지 않게 하자. ORDER 명령 수행하는데 computing power 많이 사용.
- WITH 절 내에서 정렬 제거: WITH 절 안에서 정렬을 수행하지 않고, 필요한 경우 메인 쿼리에서 정렬을 수행합니다.
- GROUP BY 절과 ORDER BY 절 통합: GROUP BY 절에서 이름을 그룹화하고 그룹의 개수를 계산한 다음, 그룹의 개수를 기준으로 필터링합니다. 이렇게 하면 ORDER BY 절이 필요하지 않습니다.
'DataEngineering' 카테고리의 다른 글
SQL 프로그래머스 문제 - 진료과별 총 예약 횟수 출력하기 (0) | 2024.05.14 |
---|---|
SQL 프로그래머스 문제 - 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기 (0) | 2024.05.14 |
SQL 프로그래머스 문제 - 상위 n개 레코드 (0) | 2024.05.13 |
SQL 프로그래머스 문제 - 강원도에 위치한 생산공장 목록 출력하기 (0) | 2024.05.13 |
SQL 프로그래머스 문제 - 인기있는 아이스크림 (0) | 2024.05.13 |