[엑셀보다 쉽고 빠른 SQL] 2주차 정리
SQL 1주차 에 이어서 SQL 2주차 마무리까지 정리한 글이다.
1. 엑셀 계산식 사용하기
엑셀에서 기본적으로 사용하는 SUM(), AVERAGE(), COUNT(), MIN(), MAX() 함수를 SQL Query로 사용하는 법에 대해 공부했다.
기본적으로 우리가 사용하는 +, -, /, * 사용이 가능하다.
다만, 데이터 타입이 숫자여야 한다
👉🏻 기본 연산, 합계와 평균
사용하고자 하는 함수를 쓰고 괄호(매개변수)안에 컬럼값을 넣어 준다.
예시) food_orders 테이블의 price 라는 컬럼값을 기준으로 설명!!
📌 함수명은 소문자로 적어도 동작한다
🤗 활용 예시)
food_orders 테이블에서 가격이 20000이상 30000미만인 것 중 가격이 최댓값인 레스토랑의 이름과 가격을 조회한다.
SELCET restaurant_name, max(price)
FROM food_orders
WHERE (price>=20000 and price<30000)
2. GROUP BY로 카테고리 구하기
GROUP BY 절의 경우 카테고리를 지정하여 연산하거나 조회할 때 유용하다.
예를 들어, 지역별 주민정보에 대한 테이블이 있다고 한다면 지역별 주민들의 나이 평균을 알고싶어! 라고 했을 때 '지역'이라는 카테고리에 컬럼이 있다면 group by 절을 사용하여 쉽게 조회할 수 있다.
📌 단, 사용할 때 주의점은 group by는 꼭 where 뒤에 와야한다!
👉🏻 카테고리 별 연산하기
1. 조회하고자 하는 카테고리를 떠올립니다.
2. 카테고리가 조회하는 테이블의 컬럼에 있는지 확인합니다.
3. 조회하고자 하는 연산과 함께 group by로 카테고리를 설정합니다.
🤗 활용 예시)
결제 타입별 가장 최근 결제일을 조회한다.
여기서 카테고리는 '결제 타입' 이다!
SELECT pay_type "결제 타입",
max(date) "최근 결제일"
FROM payments
GROUP BY pay_type
3. Query 결과를 정렬하기
오름차순 내림차순으로 정렬하고 데이터를 조회하고 싶을 때 사용한다.
정렬은 컬럼과 정렬순서를 지정할 수 있다.
📌 단, 사용할 때 주의점은 order by는 꼭 group by 뒤에 와야한다!
📌 연산 함수도 사용 가능하다!
👉🏻 조회하는 데이터 정렬하기
1. 정렬하고자 하는 컬럼을 떠올립니다.
2. 오름/내림차 순을 지정합니다.
3. 중첩 정렬이라면 어떤 컬럼이 제일 먼저 정렬되어야 하는지 정합니다.
4. 명령문 마지막에 order by로 해당 컬럼을 정렬합니다.
🤗 활용 예시)
음식 주문 테이블에서 음식 종류별 주문 금액 합계 기준 내림차순으로 정렬하고 음식 종류별 금액 합계를 조회한다.
여기서 중요한건 '주문 금액 합계 기준' 이다!
SELECT cuisine_type, sum(price)
FROM food_orders
group by cuisine_type
order by sum(price) desc
select 에 sum(price)와 order by 에 sum(price)를 맞추는 것이 중요!
4. SQL 구조 익히기
SQL을 작성할 때는 순서와 구문을 이해하는 것이 중요하다.
👉🏻 순서 맞추기
1. select
2. from
3. where
4. group by
5. order by
위 순서를 지키지 않으면 아래처럼 'error position' 문법 오류가 발생한다
📌 상위 순서 명령문이 필요없는 경우 생략해도 된다.
👉🏻 구문 이해하기
각 구문 별 의미를 이해하고 문제로 적용하는 것이 중요하다.
즉, customers 테이블에서 나이가 20~40인 사람의 수를 나이 별로 오름차순으로 정렬하여 조회한다. 라는 뜻이고, 순서는 2->5->1->4->3 이 된다.