where , having 특징

2023. 4. 19. 14:38Database

where

 - 집계 함수(group)가 적용되기 이전에 해당하는 레코드들을 선택합니다. 

 

having

 - 그룹화된 결과에 대한 필터링을 수행합니다. group by와 무조건 같이 써야합니다. 즉 그룹화 된 결과에 대해서만 조건문이 적용 가능합니다.

 

[예시]

// 올바른 sql
SELECT department, AVG(salary) AS avg_salary 
FROM employees 
GROUP BY department 
HAVING AVG(salary) >= 55000 
ORDER BY avg_salary DESC;

// 잘못된 sql
SELECT department, AVG(salary) AS avg_salary 
FROM employees
where AVG(salary) >= 55000
GROUP BY department 
ORDER BY avg_salary DESC;

'Database' 카테고리의 다른 글

upsert query에서 발생한 문제점  (0) 2023.04.19
Mysql now(), curdate() 차이  (2) 2023.04.19