프로그래머스 문제를 풀어보며 SQL 문법을 배워가고 있습니다.
다음은 HAVING의 특징입니다.
다음은 WHERE의 특징입니다.
다음은 where having의 차이 입니다.
| HAVING Clause | WHERE Clause |
|---|---|
| 행 그룹에 대한 조건을 체크 합니다. | 각 행의 조건을 체크합니다. |
| 집계 함수(aggregate functions)와 함께 사용됩니다. | 집계함수와 같이 사용할 수 없습니다. |
| GROUP BY 이후에 실행됩니다. | GROUP BY 이전에 실행됩니다. |
아래 사이트에서 간단한 예제를 테스트 할 수 있습니다.
하나 이상의 열을 기준으로 행을 그룹화 하는데 사용됩니다.
SELECT country, state, MIN(age) AS min_age
FROM Persons
GROUP BY country, state;
실행 결과 입니다.
| country | state | min_age |
|---|---|---|
| USA | LA | 22 |
| USA | NE | 28 |
| USA | TX | 22 |
국가, 주로 Grouping 후 이 그룹에 속하는 구성원의 최소 나이를 table로 출력합니다.
아래 사이트에서 도움을 받았습니다.
두 개 이상의 table에서 행들을 선택합니다. 행이 중복되는 경우 해당 행은 result set에 한 번만 포함됩니다.
SELECT age
FROM Teachers
UNION ALL
SELECT age
FROM Students;
다음은 UNION을 사용하면서 주의해야 할 점입니다.
도움을 받은 사이트입니다.
Null로 된 열을 만들어 붙입니다.
Alias를 찾아보면 도움이 될 거 같습니다.
도움을 받은 사이트입니다.
키워드를 사용하여 쿼리에서 반환 할 record 수를 지정할 수 있습니다.
-- 3개의 행 이후에 2개의 record를 가져옵니다
SELECT first_name, last_name
FROM Customers
LIMIT 2 OFFSET 3;
도움을 받은 사이트 입니다.
result set의 행의 개수를 반환합니다.
-- Order 테이블의 행의 갯수를 반환합니다.
SELECT COUNT(*)
FROM Orders;
Count와 Distinct를 같이 사용해 unique 한 행의 갯수를 가져올 수 있습니다.
-- Customers table의 unique한 country의 개수를 반환합니다.
SELECT COUNT(DISTINCT country)
FROM Customers;
도움을 받은 사이트 입니다.