SELECT 문에 대한 첫번째 포스팅에서 다룬 부분에 이어 조금 더 심화된 SELECT문을 알아보도록 하자.
ORDER BY 절
ORDER BY 절은 결과 값이나 개수에 영향을 미치지 않지만 결과가 출력되는 순서를 조절하는 역할을 한다.
SELECT mem_id, mem_name, debut_date
FROM member
ORDER BY debut_date;
-> default 값은 ASC (Ascending, 오름차순)
DESC (Descending, 내림차순) 으로 정렬하고 싶다면 맨 뒤에 명시해주면 된다.
SELECT mem_id, mem_name, debut_date, height
FROM member
WHERE height >= 164
ORDER BY height DESC;
-> ORDER BY 절과 WHERE 절은 함께 사용할 수 있다.
ORDER BY 절은 WHERE 절 뒤에 작성해야 한다.
SELECT mem_id, mem_name, debut_date, height
FROM member
WHERE height >= 164
ORDER BY height DESC, debut_date ASC;
-> 정렬 기준은 여러 개로 지정할 수 있다.
출력의 개수를 제한하는 LIMIT
LIMIT은 출력의 개수를 제한하며 주로 ORDER BY 절과 함께 사용한다
SELECT mem_name, debut_date
FROM member
ORDER BY debut_date
LIMIT 3;
-> member 테이블에서 데뷔 일자가 빠른 순서대로 정렬해 3개의 데이터의 mem_name, debut_date 열만 출력
SELECT mem_name, height
FROM member
ORDER BY height DESC
LIMIT 3, 2;
-> LIMIT 시작, 개수로 중간부터 출력할 수 있다,
LIMIT 시작, 개수 = LIMIT 개수 OFFSET 시작
LIMIT은 첫 데이터를 0으로 본다.
중복된 결과를 제거하는 DISTINCT
DISTINCT는 조회된 결과에서 중복된 데이터를 1개만 남긴다
SELECT DISTINCT addr FROM member;
GROUP BY 절
데이터를 그룹으로 묶어주는 역할을 한다.
집계 함수 : GROUP BY 절과 함께 쓰이며 데이터를 grouping 해주는 기능
SUM() | 합계 |
AVG() | 평균 |
MIN() | 최소값 |
MAX() | 최대값 |
COUNT() | 행의 개수 |
COUNT(DISTINCT) | 행의 개수 (중복은 1개만 인정) |
SELECT mem_id, SUM(amount) FROM buy GROUP BY mem_id;
-> SUM() 을 이용해 회원별 구매 개수의 합계 출력하기
SELECT mem_id "회원 아이디", SUM(price*amount) "총 구매 금액"
FROM buy GROUP BY mem_id;
-> 회원이 구매한 금액의 총합 출력하기
HAVING 절
WHERE 절과 비슷하게 조건을 제한하지만 ‘집계 함수에 대해 조건을 제한’한다.
집계 함수는 WHERE 절에 작성할 수 없다
HAVING 절은 반드시 GROUP BY 절 뒤에 작성해야 한다
(GROUP BY 절과 관련된 조건절은 HAVING 사용)
SELECT mem_id "회원 아이디", SUM(price*amount) "총 구매 금액"
FROM buy
GROUP BY mem_id
HAVING SUM(price*amount) > 1000;
-> HAVING 절과 SUM()을 사용해 총 구매액이 1000 이상인 회원을 출력하기
'Language > SQL' 카테고리의 다른 글
[MySQL] MySQL의 데이터 형식을 알아보자 (0) | 2024.08.20 |
---|---|
[MySQL] 데이터를 삭제하는 DELETE 문 (0) | 2024.08.20 |
[MySQL] 데이터를 수정하는 UPDATE 문 (0) | 2024.08.20 |
[MySQL] 데이터를 입력하는 INSERT ~ 문 (0) | 2024.08.20 |
[MySQL] 데이터를 조회하는 SELECT ~ FROM ~ WHERE 문 (1) (0) | 2024.08.20 |