ComputerScience/Database

[SQL 기초] 5. 기본 문법 (SELECT문2 ORDER BY/GTOUP BY)

LazyCat 2023. 7. 25. 16:36
반응형

1. ORDER BY 절

: 결과가 출력되는 순서를 조절합니다. 기본적으로 지정한 열 이름의 오름차순으로 정렬합니다

 

** 기본 문법

SELECT 열_이름

      FROM 테이블_이름

     ORDER BY 열_이름

 

 

(1) ORDER BY 열 이름 ASC

오름 차순 예약여

 

(2) ORDER BY 열 이름 DESC

내림 차순 예약어

 

 

* 중간 QUIZ

오류 발생한 쿼리! 예약어를 살펴보며 원인을 생각해 보세요

정답(드래그 해서 확인) :  SELECT ~ FROM ~ WHERE 순서를 지키는 것은 고정이다. ORDER BY는 그 뒤에 삽입할 것 

 

 

 

2. LIMIT

: LIMIT 절은 SELECT하는 데이터의 갯수를 제한해준다

 

(1) LIMIT 숫자

출력 결과

 

(2) LIMIT 시작_숫자,  개수

출력 결과

LIMIT 3, 2; 

3등부터 2개의 숫자를 출력하도록 하게 한다.

즉 3등, 4등이 출력되도록 제한한다.

 

 

 

3. DISTINCT

: DISTINCT는 조회된 결과에서 중복된 데이터를 1개만 남기고 출력합니다.

 

 

** DISTINCT 구문 넣기 전과 후

실행 결과

 

실행 결과

 

 

4. GROUP BY ~ HAVING ~

: GROUP BY 절은 지정한 열의 데이터들을 같은 데이터끼리 묶어서 결과를 추출합니다.

 

SELECT 열_이름

      FROM 테이블_이름

      GROUP BY 열_이름

      HAVING 조건식

 

 

실행 결과

회원(mem_id)별로 여러 건의 물건 구매가 있었고, 각각의 행들이 별도로 출력되었다.

에이핑크 회원이 구매한 물건의 총 갯수를 알기 위해선 1+2+1+1=5를 각각 합해야한다

 

그러나 이렇게 일일히 계산해야 한다면 MySQL의 의미가 없을 것이다.

 

따라서 집계 함수인 GROUP BY 를 사용해보자

 

 

 

  • 집계 함수 (GROUP BY와 함께 주로 사용함)
함수명 설명
SUM() 합계를 구함
AVG() 평균을 구함
MIN() 최소값을 구함
MAX() 최대값을 구함
COUNT() 행의 갯수를 셈
COUNT(DISTINCT) 행의 갯수를 셈(중복 제거)

 

 

 

(1) SUM()

 

SELECT mem_id, SUM(amount)

     FROM buy

     GROUP BY mem_id;

     

 

(2) HAVING

** QUIZ

총 구매가가 1000원 이상인 회원을 SELECT 하고싶어서 SELECT~ FROM~ WHERE 구문을 사용했는데 오류가 났다!

 

 

GROUP BY 구문을 사용할 땐  SELECT ~ FROM ~ HAVING 을 사용해야 한다

반응형