데이터 조작어로 데이터 분석 시 가장 많이 사용되는 명령
여러 절들과 함께 사용되어, 분석에 필요한 데이터 조회
FROM : 테이블 확인
WHERE : FROM절 데이블을 특정 조건으로 필터링
GROUP BY : 열 별로 그룹화
HAVING : 그룹화된 새로운 테이블을 특정 조건으로 필터링
SELECT: 열 선택
ORDER BY : 열 정렬
FROM -> WHERE -> GROUP BY순으로 실행
*FROM -> GROUP BY순으로 작성
USE PRACTICE;
/* Customer 테이블 모든 열 조회 */
SELECT *
FROM CUSTOMER;
/***************WHERE***************/
/* 성별이 남성 조건으로 필터링 */
SELECT *
FROM CUSTOMER
WHERE GENDER = 'MAN';
GROUP BY는 주로 집계함수와 사용되는 명령어입니다
여러 열별로 그룹화가 가능합니다
GROUP BY에 있는 열들을 SELECT에도 작성해야 원하는 분석 결과 확인
/***************GROUP BY***************/
/* 지역별로 회원수 집계 */
SELECT ADDR #지역별
,COUNT(MEM_NO) AS 회원수
FROM CUSTOMER
WHERE GENDER = 'MAN'
GROUP
BY ADDR;
/* COUNT: 행들의 개수를 구하는 집계함수 */
/***************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;
/* IN : 특수 연산자 / IN (List) / 리스트 값만 */
/* GROUP BY에 있는 열들을 SELECT에도 작성해야 원하는 분석 결과를 확인할 수 있습니다. */
SELECT GENDER
,COUNT(MEM_NO) AS 회원수
FROM CUSTOMER
WHERE ADDR IN ('SEOUL', 'INCHEON')
GROUP
BY ADDR
,GENDER;
/***************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 : 오름차순 */
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;