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 많이 사용.

 

  1. WITH 절 내에서 정렬 제거: WITH 절 안에서 정렬을 수행하지 않고, 필요한 경우 메인 쿼리에서 정렬을 수행합니다.
  2. GROUP BY 절과 ORDER BY 절 통합: GROUP BY 절에서 이름을 그룹화하고 그룹의 개수를 계산한 다음, 그룹의 개수를 기준으로 필터링합니다. 이렇게 하면 ORDER BY 절이 필요하지 않습니다.

 

+ Recent posts