책 내용 질문하기
SQL 질문
도서
2025 시나공 퀵이지 정보처리기사 실기 단기완성
페이지
213
조회수
41
작성일
2024-08-29
작성자
김*현
첨부파일

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;


답변
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으로 작성하셔야 합니다


행복한 하루되세요 :)

  • 관리자
    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으로 작성하셔야 합니다


    행복한 하루되세요 :)

· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.