Postgress의 Where vs Having

1406 단어 postgresbeginners
최근에 나는postgreSQL을 사용하고 있는데 그 중 하나의 개념이 매우 유용하지만 동시에 나는 WHERE와have를 구분하기 어렵다는 것을 발견했다.그래서 나는 작은 배경을 제시하고 예를 들어 보여주고 싶다.
WHERE 자구는 이 조건을 각 줄에 적용한 다음 GROUP by 자문에서 이 줄들을 그룹으로 묶습니다.단, HAVING 자구는 행을 그룹화한 후 조건을 그룹에 적용합니다.이것이 바로 HAVING 자구가 GROUP BY 자구 다음에 응용되고 WHERE 자구가 GROUP BY 자구 앞에 응용되는 이유이다.

예제


한 학교에서 학생들이 등록할 수 있는 과정을 제공한다고 가정해 보자. 학교는 스타 학생이 마지막 학년에서 8점 이상을 받은 학생들보다 더 우수하다고 생각한다. 표를 보자.

만약 지령이 누가 스타 학생인지 알고 싶다면, 우리는 보통 이런 조회를 사용한다
select * 
from inscription
  where final_grade > 8

그러나 어떤 그룹 중 한 명 이상의 스타 학생을 보고 싶으면 HAVING 자구를 사용해야 한다
select course_id, count(*) enrolled_students 
from inscription
  where final_grade > 8
  group by course_id
  having count(*) > 1 

나는 이 매우 어리석은 예가 너를 도울 수 있기를 바란다. 읽어 줘서 고마워!!

좋은 웹페이지 즐겨찾기