내일배움캠프 3일차 TIL-SQL 연산 및 가공

iy·2023년 12월 23일

TIL

목록 보기
2/37

SQL 연산

  1. 기본 연산, 합계와 평균 구하기
  • 합계 : SUM
  • 평균 : AVG
SELECT SUM(food_preparation_time) total_food_preparation_time,
       AVG(delivery_time) avg_food_preparation_time
FROM 테이블명

SELECT AVG(age)
FROM 테이블명
  1. 전체 데이터 갯수 구하기
  • 데이터 갯수 : COUNT(컬럼)
  • 몇개의 값을 가지고 있는 지 구할 때 : DISTINCT(중복X)
SELECT COUNT(1) count_of_orders,
       COUNT(distinct customer_id) count_of_customers
FROM 테이블명
  1. 최댓값, 최솟값 구하기
  • 최댓값 : MAX(칼럼)
  • 최솟값 : MIN(칼럼)
SELECT MIN(price) min_price,
       MAX(price) max_price
FROM 테이블명
  1. WHERE 절로 원하는 데이터 뽑고 계산
    1. Query를 적기 전에 흐름을 먼저 정리해보기
      1. 어떤 테이블에서 데이터를 뽑을 것인지
      2. 어떤 칼럼을 이용할 것인지
      3. 어떤 조건을 지정해야 하는지
      4. 어떤 함수 수식 을 이용해야 하는지
    2. 구문으로 만들기
    3. 전체 구조로 합치기

한국 식당에서 평균 주문 금액

SELECT AVG(price) as average_price
FROM 테이블명
WHERE cuisine_type = 'Korean'
  1. 범주별 연산을 하는 법(GROUP BY)
    1. 카테고리별로 숫자 연산을 간단하게 하기
    2. GROUP BY 기본 구조

결제 방식별로 가장 최근 결제일 조회하기

SELECT pay_type ,MAX(date) recent_date
FROM 테이블명
GROUP BY pay_type 
  1. Query 결과를 정렬(ORDER BY)
  • SQL 로 조회한 결과를 원하는 순서대로 정렬
    • ASC : 오름차순(기본값)
    • DESC : 내림차순

음식점 별로 주문 금액 최댓값 내림차순으로 정렬해서 조회

SELECT restaurant_name , 
       MAX(price) max_price 
FROM 테이블명
GROUP BY restaurant_name 
ORDER BY MAX(price) DESC 
  1. 일반적인 SQL 구조
SELECT 
FROM
WHERE
GROUP BY
ORDER BY

SQL 가공

  • 필요한 데이터에 맞게 가공할 수 있다.
  1. 특정 문자를 다른 문자로 바꾸기

    • REPLACE(기존데이터, '바꿀 단어', '바뀔 단어')
  2. 전체 데이터가 아닌 특정 문자의 데이터만 필요할 때

    • SUBSTR(컬럼지정, 시작 위치, 자를 수)
  3. 여러 컬럼에서 하나로 합쳐 원하는 컬럼 형태로 만들기

    • CONCAT(붙이고 싶은 문자1, 붙이고 싶은 문자2, 붙이고 싶은 문자3, ....)
  • 조건을 지정할 수 있다
  1. IF 문
IF(조건, 조건을 충족할 때, 조건을 충족하지 못할 때)
  1. CASE 문
CASE WHEN 조건1 THEN 값(수식)1
     WHEN 조건2 THEN 값(수식)2
     ELSE 값(수식)3 (조건 주는 외의 경우가 없다면 생략가능)
END

CASE문 이용해서 음식 종류 별로 구분하기

select CASE WHEN cuisine_type = 'Korean' THEN '한식'
            WHEN cuisine_type IN ('Japanese','Chinese','Indian') THEN '아시아'
            else '기타' END "음식타입",
            cuisine_type 
FROM 테이블명

조건문 어디에 사용할 수 있나?

  • 새로운 카테고리 만들 때
  • 연산식을 적용할 조건 지정할 때
  • 다른 문법 안에서 적용할 때

👀

SQL 강의 2주 차, 3주 차 강의를 들었다. 수업을 들을 때는 해당 실습만 진행해서 어려움이 없는데 모든 경우의 연습문제를 풀 때는 어떤 연산이나 조건문을 사용해야 하는지 판단하는데 시간이 좀 걸린다. 더 많은 문제를 풀어서 고민하는 시간을 좀 줄여나가야겠다.

0개의 댓글