티스토리 뷰

Oracle

[Oracle] SELECT 구절 순서

devbelly 2021. 1. 5. 11:23

SELECT 절은 다음과 같은 순서로 작성되어야 합니다.

SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY

 

작성되는 순서와 다르게 명령을 처리하는 순서는 SELECT가 맨 뒤로 간 순서대로 처리 됩니다.

FROM, WHERE, GROUP BY, HAVING, ORDER BY, SELECT

 

만약 회원별 조회수를 조회하면서 조회수가 2 미만인 레코드만 확인하는 쿼리는 다음과 같이 작성할 수 있습니다.

SELECT SUM(HIT) FROM NOTICE WHERE SUM(HIT)<2 GROUP BY WRITER_ID;

하지만 위와같이 작성하면 오류가 발생합니다.

집계함수 SUM은 GROUP BY 이후부터 사용이 가능하므로 처리 순서상 앞에 있는 WHERE 에서는 집계함수를 사용할 수 없습니다. WHERE 절 대신 GROUP BY 뒤에 있는 HAVING을 통해 해결가능 합니다.

 

SELECT SUM(HIT) FROM NOTICE GROUP BY WRITER_ID HAVING SUM(HIT)<2;

 

출처

www.youtube.com/channel/UC5-ixpj8DioZqmrasj6Ihpw

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함