230425 TIL

하이·2023년 4월 25일
0

TIL

목록 보기
1/2

SQL

프로그래머스 문제를 풀어보며 SQL 문법을 배워가고 있습니다.


WHERE HAVING 차이

다음은 HAVING의 특징입니다.

  • 주어진 조건을 만족하는 그룹만 최종 결과에 표시됩니다.
  • SELECT 문만 사용할 수 있습니다.
  • Group by 와 함께 사용됩니다.

다음은 WHERE의 특징입니다.

  • table에서 record를 필터링하거나 둘 이상의 테이블을 join할 때 사용합니다.
  • 지정한 조건을 만족하는 record만 추출합니다.
  • SELECT, UPDATE, DELETE 문과 함께 사용할 수 있습니다.

다음은 where having의 차이 입니다.

HAVING ClauseWHERE Clause
행 그룹에 대한 조건을 체크 합니다.각 행의 조건을 체크합니다.
집계 함수(aggregate functions)와 함께 사용됩니다.집계함수와 같이 사용할 수 없습니다.
GROUP BY 이후에 실행됩니다.GROUP BY 이전에 실행됩니다.

아래 사이트에서 간단한 예제를 테스트 할 수 있습니다.


GROUP BY

하나 이상의 열을 기준으로 행을 그룹화 하는데 사용됩니다.

SELECT country, state, MIN(age) AS min_age
FROM Persons
GROUP BY country, state;

실행 결과 입니다.

countrystatemin_age
USALA22
USANE28
USATX22

국가, 주로 Grouping 후 이 그룹에 속하는 구성원의 최소 나이를 table로 출력합니다.

아래 사이트에서 도움을 받았습니다.


UNION

두 개 이상의 table에서 행들을 선택합니다. 행이 중복되는 경우 해당 행은 result set에 한 번만 포함됩니다.

SELECT age
FROM Teachers
UNION ALL
SELECT age
FROM Students;

다음은 UNION을 사용하면서 주의해야 할 점입니다.

  • table의 Column 의 개수가 동일해야 합니다.
  • column 의 data type이 동일해야 합니다.
  • column 의 순서가 동일해야 합니다.

도움을 받은 사이트입니다.


Null as [ColumnName]

Null로 된 열을 만들어 붙입니다.

Alias를 찾아보면 도움이 될 거 같습니다.

도움을 받은 사이트입니다.


LIMIT

키워드를 사용하여 쿼리에서 반환 할 record 수를 지정할 수 있습니다.

-- 3개의 행 이후에 2개의 record를 가져옵니다
SELECT first_name, last_name
FROM Customers
LIMIT 2 OFFSET 3;

도움을 받은 사이트 입니다.


COUNT

result set의 행의 개수를 반환합니다.

-- Order 테이블의 행의 갯수를 반환합니다.
SELECT COUNT(*)
FROM Orders;

Count와 Distinct를 같이 사용해 unique 한 행의 갯수를 가져올 수 있습니다.

-- Customers table의 unique한 country의 개수를 반환합니다.
SELECT COUNT(DISTINCT country)
FROM Customers;

도움을 받은 사이트 입니다.


출처

profile
안녕하세요

0개의 댓글