ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • SQL 3. SQL 문법_SELECT
    SYNC 기술면접 준비 2023. 11. 13. 13:57

    데이터 조회(select)는 여러 절들과 함께 사용되며, 분석에 필요한 데이터를 조회한다.

    절 : from, where, group by, having, order by

     

    데이터 조회  
    From 테이블 확인
    where From 절 테이블을 특정 조건으로 필터링
    group by 열 별로 그룹화
    having 그룹화된 새로운 테이블을 특정 조건으로 필터링
    select 열 선택
    order by 열 정렬

     

    group by  > 기존 테이블이 새로운 테이블로 변환된다.

    count > 행들의 갯수를 구하는 집계함수

     

     

    USE PRACTICE;

    /*************** FROM ***************/

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

    /*************** where ***************/
    /* 성별이 남성 조건으로 필터링됨 */
    select *
    from Customer
    where gender = 'man';

    /*************** group by ***************/
    /* from절, where절 아래에 작성되어야 한다. */
    /* 지역별로 회원수 집계 */
    select ADDR AS 지역,
    count(MEM_NO) as 회원수 /* 해당 열에 대한 갯수를 구한다는 의미 */ 
    from CUSTOMER
    where gender = 'man'
    group by addr;

    /*************** HAVING ***************/
    /* 집계 회원수 100명 미만 조건으로 필터링 */
    SELECT ADDR AS 지역, 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 : 내림차순 정렬 

    -- select, from, where, group by, having, order by 

     

    group by는 집계함수와 주로 사용되는 명령어

    여러 일별로 그룹화가 가능+

    group by에 있는 열들을 select에도 작성해야 원하는 분석 결과를 확인할 수 있다.

     

    /*************** from -> (where) -> group by ***************/
    /* from -> group by 순으로 작성해도 된다 */
    select addr, count(mem_no) as 회원수
    from customer
    group by addr;

    >>>>>>>>>> where 절 생략 가능하다.

     

    /*************** from -> (where) -> group by ***************/
    /* 거주지역을 서울, 인천 조건으로 필터링 */
    /* 거주지역 및 성별로 회원수 집계 */
    select addr, gender as 성별, count(mem_no) as 회원수
    from customer
    where addr in ('SEOUL', 'INCHEAON') -- 리스트 값
    GROUP BY ADDR, GENDER;

     

     

    /* GROUP BY에 있는 열들을 SELECT에도 작성해야 원하는 분석 결과를 확인 할 수 잇다. */ 
    select gender as 성별, count(mem_no) as 회원수
    from customer
    where addr in ('SEOUL', 'INCHEAON')
    GROUP BY ADDR, GENDER;

     

    SQL : 띄어쓰기, 줄바꿈, TAB사용에 자유도가 높음

     

    /***************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; -- 회원수 별로 내림차순 정렬

    'SYNC 기술면접 준비' 카테고리의 다른 글

    SQL 3. SQL 문법_SUB QUERY  (1) 2023.11.13
    SQL 3. SQL 문법_JOIN  (0) 2023.11.13
    SQL 2. SQL 명령어_총정리  (0) 2023.11.13
    SQL 2. SQL 명령어_3  (0) 2023.11.13
    SQL 2. SQL 명령어_2  (0) 2023.11.13
Designed by Tistory.