WHERE 절이라는 조건절을 사용하여 결과를 필터링할 수 있습니다. 이 WHERE 절을 사용하여 테이블에서 필요한 레코드를 선택하기 위한 선택 기준을 지정할 수 있습니다. HAVING 절은 행 또는 집계 그룹에 대한 필터 조건을 지정합니다.
WHERE 절은 집계 함수와 함께 사용할 수 없지만 HAVING은 집계 함수와 함께 사용할 수 있습니다. 다음은 예입니다 -
이제 테이블을 생성해 보겠습니다.
mysql> create table WhereDemo -> ( -> Price int -> ); Query OK, 0 rows affected (0.64 sec)
테이블에 레코드 삽입하기.
mysql> insert into WhereDemo values(100); Query OK, 1 row affected (0.13 sec) mysql> insert into WhereDemo values(200); Query OK, 1 row affected (0.21 sec) mysql> insert into WhereDemo values(300); Query OK, 1 row affected (0.15 sec) mysql> insert into WhereDemo values(400); Query OK, 1 row affected (0.12 sec)
모든 기록을 표시합니다.
mysql> select *from WhereDemo;
다음은 출력입니다.
+-------+ | Price | +-------+ | 100 | | 200 | | 300 | | 400 | +-------+ 4 rows in set (0.00 sec)
HAVING 절은 집계 함수와 함께 사용할 수 있습니다.
mysql> select sum(Price) from WhereDemo HAVING Sum(Price) > 500;
다음은 출력입니다.
+------------+ | sum(Price) | +------------+ | 1000 | +------------+ 1 row in set (0.00 sec)
여기서 집계 함수와 함께 WHERE를 사용하려고 하면 ERROR가 생성됩니다.
mysql> select sum(Price) from WhereDemo where Sum(Price) > 200; ERROR 1111 (HY000): Invalid use of group function