213쪽 예제2에서
SELECT 부서, COUNT(*) AS 사원수
FROM 상여금
WHERE 상여금 >= 100
GROUP BY 부서
HAVING COUNT(*) >= 2;
라고 되어있는데 WHERE 절에 있는 조건을 HAVING 절에 포함시켜도 되나요?
SELECT 부서, COUNT(*) AS 사원수
FROM 상여금
GROUP BY 부서
HAVING COUNT(*) >= 2 AND 상여금 >= 100;
안녕하세요 길벗수험서 운영팀입니다.
where 에서 사용하는 조건과 having의 조건은 서로 다릅니다
단순히 데이터에 조건을 지정할 때는 where,
그룹된 결과에 대해 조건을 지정하는 것은 having입니다.
Having절은 WHERE절과 비슷하지만 그룹 전체 즉, 그룹을 나타내는 결과 집합의 행에만 적용됩니다
반면 WHERE절은 개별 행에 적용이 됩니다
having은 SQL select문이 집계 값이 지정된 조건을 충족하는 행만 반환하도록 지정하는 SQL 이고
where은 단일 테이블에서 데이터를 가져 오거나 여러 테이블과 결합하여 조건을 지정하는데 사용되는 SQL입니다
having절은 그룹을 필터링하는 데 사용되고
where절을 행을 필터링 하는데 사용됩니다
Having은 그룹화 또는 집계가 발생한 후 레코드를 필터링하는데 사용되고
Where은 그룹화 또는 집계가 발생하기 전에 레코드를 필터링하는데 사용됩니다
예를들면 점수가 90점 이상인 데이터를 표시하려면 where 점수>=90으로 작성하면 되고,
직위별 점수의 평균이 90 이상인 직위만 표시하려면 group by 직위 having avg(점수) >= 90으로 작성하셔야 합니다
행복한 하루되세요 :)
-
관리자2024-08-29 21:50:03
안녕하세요 길벗수험서 운영팀입니다.
where 에서 사용하는 조건과 having의 조건은 서로 다릅니다
단순히 데이터에 조건을 지정할 때는 where,
그룹된 결과에 대해 조건을 지정하는 것은 having입니다.
Having절은 WHERE절과 비슷하지만 그룹 전체 즉, 그룹을 나타내는 결과 집합의 행에만 적용됩니다
반면 WHERE절은 개별 행에 적용이 됩니다
having은 SQL select문이 집계 값이 지정된 조건을 충족하는 행만 반환하도록 지정하는 SQL 이고
where은 단일 테이블에서 데이터를 가져 오거나 여러 테이블과 결합하여 조건을 지정하는데 사용되는 SQL입니다
having절은 그룹을 필터링하는 데 사용되고
where절을 행을 필터링 하는데 사용됩니다
Having은 그룹화 또는 집계가 발생한 후 레코드를 필터링하는데 사용되고
Where은 그룹화 또는 집계가 발생하기 전에 레코드를 필터링하는데 사용됩니다
예를들면 점수가 90점 이상인 데이터를 표시하려면 where 점수>=90으로 작성하면 되고,
직위별 점수의 평균이 90 이상인 직위만 표시하려면 group by 직위 having avg(점수) >= 90으로 작성하셔야 합니다
행복한 하루되세요 :)