• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

해설내용에서 함수의 실행순서 질문드립니다

22.03.10 01:01 작성 조회수 217

0

SELECT months * salary AS earnings, COUNT(*)

FROM Employee

GROUP BY earnings

ORDER BY earnings DESC

LIMIT 1;

 

위의 SELECT 문 내에서,

months * salary AS earnings 부분은 먼저 실행이 되어, 밑의 GROUP BY 나 ORDER BY 등에 영향을 미치는데, 

 

COUNT(*) 는 LMIT 1까지 모두 적용이 된 이후의 결과값을 카운팅 하는 이유가 뭔가요?

집계함수는 항상 최종적인 결과값에 대해 적용이 되는 건가요?

 

답변 2

·

답변을 작성해보세요.

1

안녕하세요 이상현님

전달주신 쿼리의 실행 순서는 FROM -> GROUP BY  -> SELECT -> ORDER BY -> LIMIT 순 입니다.

만약 LIMIT 1까지 모두 적용이 된 후의 결과를 카운팅 해주는 방식으로 쿼리가 작동된다면 내부에 데이터 값이 몇개든 상관 없이 COUNT(*)의 결과는 1로 고정되어야 하는데요. 쿼리 결과는 그렇게 나오지는 않습니다. 결과값을 다시 한 번 천천히 확인해보시면 좋을 것 같습니다.

쿼리 순서와 관련한 참고 자료를 첨부드립니다.

0

이상현님의 프로필

이상현

질문자

2022.03.16

아 그렇군요,. 잘못 생각했네요

답변 감사합니다!^^