보유(SQL)
Having (SQL)SQL의 절에서 SQL을 지정함SELECT문은 집계 값이 지정된 조건을 만족하는 행만 반환해야 한다.null
HAVING그리고WHERE초보자에 의해 종종 혼란스러워 하지만 그들은 다른 목적을 위해 봉사한다.nullWHERE테이블에서 읽은 행을 필터링하여 쿼리 실행의 초기 단계에서 고려된다.쿼리에 포함된 경우GROUP BY, 테이블의 행을 그룹화하고 집계한다.집계 작업 후,HAVING지정된 조건과 일치하지 않는 행을 필터링하여 적용.그러므로WHERE테이블에서 읽은 데이터에 적용HAVING쿼리 초기 단계에서는 알 수 없는 집계된 데이터에만 적용해야 한다.null
절에 의해 형성된 현재 상태를 보기 위해 절이 사용된다.[clarification needed]null
예
2000년 1월 1일 총 매출액이 1,000달러를 초과한 부서 ID 목록을 해당 날짜의 매출 합계와 함께 반환하려면:
선택 뎁티디, SUM(판매 금액) From 판매의 어디에 세일데이 = '01-2000년 1월' 그룹 BY 뎁티디 하고 있다 SUM(판매 금액) > 1000 참가 예제의 샘플 표를 참조하여 다음 쿼리는 직원이 1명 이상인 부서의 목록을 반환한다.
선택 부서 이름, 카운트(*) From 직원 가입하다 부서 켜기 직원.부서아이디 = 부서.부서아이디 그룹 BY 부서 이름 하고 있다 카운트(*)>1; HAVING편리하지만 꼭 필요한 것은 아니다.위의 예와 동일하지만 사용하지 않는 코드HAVING는 다음과 같이 보일 수 있다.
선택 * From ( 선택 부서 이름 AS 뎁트남, 카운트(*) AS 엠프앤트 From 직원 AS 폐기하다 가입하다 부서 AS 부서 켜기 폐기하다.부서아이디 = 부서.부서아이디 그룹 BY 뎁트남 ) AS 곱슬곱슬하다 어디에 곱슬곱슬하다.엠프앤트 > 1;