ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • SQL 3. SQL 문법_총정리
    SYNC 기술면접 준비 2023. 11. 13. 23:00

     

    use practice;
    /*데이터 조회*/
    -- 1.customer 테이블의 가입년도 멸 및 지역별 회원수를 조회하는 것
    -- from 절 / group by 절 / select 절 / year 및 count함수 활용

    select * from customer;

    select year(join_date), addr, count(mem_no) as 회원수
    from customer
    group by year(join_date), addr;

    -- 2. 1번 명령어에서 성별이 남자회원 조건을 주가한 뒤, 회원수가 50명 이상인 조건을 추가하기
    select year(join_date), addr, count(mem_no) as 회원수
    from customer
    where gender = 'man'
    group by year(join_date), addr
    having count(mem_no) >= 50;


    /* 3. (2) 명령어에서 회원수를 내림차순으로 정렬하시오.*/
    /* ORDER BY절 활용 */
    select year(join_date), addr, count(mem_no) as 회원수
    from customer
    where gender = 'man'
    group by year(join_date), addr
    having count(mem_no) >= 50
    order by count(mem_no) desc;

    /***************데이터 조회(SELECT) + 테이블 결합(JOIN) ***************/
    /* sales 테이블 기준으로 product 테이블을 left join */
    select *
    from sales as a
    left join product as b
    on a.product_code = b.product_code;


    /* 2. (1)에서 결합된 테이블을 활용하여, 브랜드별 판매수량을 구하시오. */
    /* GROUP BY절 / SUM 함수 활용*/

    select b.brand, sum(sales_qty) as 판매수량
    from sales as a
    left join product as b
    on a.product_code = b.product_code
    group by b.brand;

    /* 3. CUSTOMER 및 SALES 테이블을 활용하여, 회원가입만하고 주문이력이 없는 회원수를 구하시오.*/
    /* LEFT JOIN 활용 */    
    select count(a.mem_no)
    from customer as a
    left join sales as b
    on a.mem_no = b.mem_no
    where b.mem_no is null;

    /***************데이터 조회(SELECT) + 테이블 결합(JOIN) + 서브 쿼리(Sub Query)***************/
    /* 1. FROM절 서브쿼리를 활용하여, SALES 테이블의 PRODUCT_CODE별 판매수량을 구하시오.*/
    /* FROM절 서브쿼리 / SUM 함수 활용 */
    select * 
    from(
    select  product_code as 상품코드, sum(sales_qty) as 판매수량
    from sales
    group by product_code
    ) as a;


    /* 2. (1) 명령어를 활용하여, PRODUCT 테이블과 LEFT JOIN 하시오.*/
    /* LEFT JOIN 활용 */
    SELECT  *
    FROM (
    SELECT  PRODUCT_CODE ,SUM(SALES_QTY) AS 판매수량
    FROM  SALES
    GROUP BY  PRODUCT_CODE
    )AS A
    LEFT JOIN PRODUCT AS B
    ON  A.PRODUCT_CODE = B.PRODUCT_CODE;

    /* 3. (2) 명령어를 활용하여, 카테고리 및 브랜드별 판매수량을 구하시오.*/
    /* GROUP BY절 / SUM 함수 활용*/
    SELECT  category as 카테고리, brand as 브랜드, count(판매수량) as 판매수량
    FROM (
    SELECT  PRODUCT_CODE ,SUM(SALES_QTY) AS 판매수량
    FROM  SALES
    GROUP BY  PRODUCT_CODE
    )AS A
    LEFT JOIN PRODUCT AS B
    ON  A.PRODUCT_CODE = B.PRODUCT_CODE
    group by category, brand;

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

    SQL 4. SQL 활용_연산자 및 함수(2)  (1) 2023.11.14
    SQL 4. SQL 활용_연산자 및 함수(1)  (1) 2023.11.13
    SQL 3. SQL 문법_SUB QUERY  (1) 2023.11.13
    SQL 3. SQL 문법_JOIN  (0) 2023.11.13
    SQL 3. SQL 문법_SELECT  (0) 2023.11.13
Designed by Tistory.