• 데이터 조회(SELECT) : 데이터 조작어(DML)이며, 데이터 분서게서 가장 많이 사용되는 명령어
- 여러 절들과 함꼐 사용됨
절 : FROM, WHERE, GROUP BY, HAVING, ORDER BY
회원테이블을 | FROM 절 | 테이블 확인 |
성별이 남성 조건으로 필터링하여 | WHERE 절 | FROM절 테이블을 특정 조건으로 필터링 |
거주지역별로 회원수 집계 | GROUP BY 절 | 열 별로 그룹화 |
집계 회원수 100명 미만 조건으로 필터링 | HAVING 절 | 그룹화된 새로운 테이블을 특정 조건으로 필터링 |
모든 열 조회 | SELECT 절 | 열 선택 |
집계 회원수가 높은 순으로 | ORDER BY 절 | 열 정렬 |
• GROUP BY 절이 사용되게 되면 기존 테이블이 새로운 테이블이 만들어짐
• FROM -> WHERE -> GROUP BY 순으로 실행
- FROM -> GROUP BY 순으로 작성해도 됨
• GROUP BY는 집계함수와 주로 사용되는 명령어
- 여러 열별로 그룹화가 가능
- GROUP BY에 있는 열들을 SELECT에도 작성해야 원하는 분석 결과를 확인할 수 있음
• 실습
USE Practice;
/************FROM************/
/* Customer 테이블 모든 열 조회 */
SELECT *
FROM CUSTOMER;
/************WHERE****************/
/* 성별이 남성 조건으로 필터링 */
SELECT *
FROM CUSTOMER
WHERE GENDER = 'MAN';
/************GROUP BY**************/
/* 지역별로 회원 수 집계 */
SELECT
ADDR, COUNT(MEM_NO) AS 회원수
FROM
CUSTOMER
WHERE
GENDER = 'MAN'
GROUP BY ADDR;
/* COUNT : 행들의 개수를 구하는 집계함수 */
/************HAVING*************/
/* 집계 회원수 100명 미만 조건으로 필터링 */
SELECT
ADDR, COUNT(MEM_NO) AS 회원수
FROM
CUSTOMER
WHERE
GENDER = 'MAN'
GROUP BY ADDR
HAVING COUNT(MEM_NO) < 100;
/* < : 비교 연산자 / ~보다 작은 */
/**************ORDER BY*****************/
SELECT
ADDR, COUNT(MEM_NO) AS 회원수
FROM
CUSTOMER
WHERE
GENDER = 'MAN'
GROUP BY ADDR
HAVING COUNT(MEM_NO) < 100
ORDER BY COUNT(MEM_NO) DESC;
/* DESC : 내림차순 / ASC : 오름차순 */
/************FROM->(WHERE)->GROUP BY***********/
/* FROM->GROUP BY 순으로 작성해도 됨*/
SELECT ADDR, COUNT(MEM_NO) AS 회원수
FROM CUSTOMER
/* WHERE GENDER = 'MAN' */
GROUP BY ADDR;
/************GROUP BY + 집계함수 ***********/
/* 거주지역을 서울, 인천 조건으로 필터링 */
/* 거지지역 및 성별로 회원수 집계 */
SELECT
ADDR, GENDER, COUNT(MEM_NO) AS 회원수
FROM
CUSTOMER
WHERE
ADDR IN ('SEOUL' , 'INCHEON')
GROUP BY ADDR , GENDER;
/***************SQL 명령어 작성법***************/
/* 회원테이블(Customer)을 */
/* 성별이 남성 조건으로 필터링하여 */
/* 거주지역별로 회원수 집계 */
/* 집계 회원수 100명 미만 조건으로 필터링 */
/* 모든 열 조회 */
/* 집계 회원수가 높은 순으로 */
SELECT ADDR
,COUNT(MEM_NO) AS 회원수
FROM CUSTOMER
WHERE GENDER = 'MAN'
GROUP
BY ADDR
HAVING COUNT(MEM_NO) < 100
ORDER
BY COUNT(MEM_NO) DESC;
'Studying > SQL' 카테고리의 다른 글
SQL명령어 - 트랜젝션 제어어(TCL) (0) | 2021.09.27 |
---|---|
SQL명령어 - 데이터 조작어 (DML) / 데이터 제어어 (DCL) (0) | 2021.09.23 |
SQL 명령어 - 데이터 정의어 (DDL) (0) | 2021.09.22 |
SQL 공부 시작하기 (0) | 2021.09.21 |