데이터 조회(SELECT)

매일 공부(ML)·2022년 2월 21일
0

데이터 조회(SELECT)

데이터 조작어로 데이터 분석 시 가장 많이 사용되는 명령

여러 절들과 함께 사용되어, 분석에 필요한 데이터 조회

FROM : 테이블 확인

WHERE : FROM절 데이블을 특정 조건으로 필터링

GROUP BY : 열 별로 그룹화

HAVING : 그룹화된 새로운 테이블을 특정 조건으로 필터링

SELECT: 열 선택

ORDER BY : 열 정렬



FROM

FROM -> WHERE -> GROUP BY순으로 실행

*FROM -> GROUP BY순으로 작성


USE PRACTICE;

/* Customer 테이블 모든 열 조회 */
SELECT  *
  FROM  CUSTOMER;

WHERE

/***************WHERE***************/

/* 성별이 남성 조건으로 필터링 */
SELECT  *
  FROM  CUSTOMER
 WHERE  GENDER = 'MAN';

GROUP BY

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

/***************HAVING***************/

/* 집계 회원수 100명 미만 조건으로 필터링 */
SELECT  ADDR
		,COUNT(MEM_NO) AS 회원수
  FROM  CUSTOMER
 WHERE  GENDER = 'MAN'
 GROUP
    BY  ADDR
HAVING  COUNT(MEM_NO) < 100;
    
/* < : 비교 연산자 / ~ 보다 작은*/


ORDER BY

/***************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 : 오름차순 */

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;

profile
성장을 도울 아카이빙 블로그

0개의 댓글