이전 시간에 이어서 데이터를 조회하는 SQL 기본구조를 활용하여 숫자 계산과 정렬에 대해 공부합니다.
✍🏻배운내용📚
2. GROUP BY로 범주별 연산
3. ORDER BY로 원하는 순서로 정렬
4. SQL 문법의 기본 구조🔥
2. GROUP BY로 범주별 연산
1) 카테고리별로 숫자 연산
음식 종류별로 평균 음식 가격을 구하기 위해 where 절을 사용해서 수십개의 쿼리를 작성하는 것은 너무 비효율적입니다. 이 문제를 Group by를 사용해서 해결할 수 있습니다.
‘원하는 단위로 나누는 것 (eg. 음식 종류별, 식당별)’ 을 앞으로 ‘카테고리별로’ 계산을 한다고 명명 하겠습니다
여러번의 Query 없이, 카테고리를 지정하여 수식 함수로 연산할 때에 사용되는 구문이 Group by 입니다.
2) Group by 기본 구조
select 카테고리컬럼(원하는컬럼 아무거나), sum(계산 컬럼),
from
group by 카테고리컬럼(원하는컬럼 아무거나)
[실습] Group By
1. 음식 타입 별로 가격의 합계를 조회
SELECT cuisine_type , sum(price) sum_type_price
from food_orders
group by cuisine_type
2. 음식점별 주문 금액 최댓값 조회
SELECT restaurant_name, max(price) max_price_restaurant
from food_orders
group by restaurant_name
3. .결제 타입별 가장 최근 결제일 조회
SELECT pay_type, max(`date`) recent_date
from payments
group by pay_type
3. ORDER BY로 원하는 순서로 정렬
1) SQL 결과도 원하는 값 기준으로, 오름차순 혹은 내림차순으로 정렬할 수 있습니다.
오름차순 : 숫자가 점점 커지는 순서로 정렬 (기본 세팅)
내림차순 desc: 숫자가 점점 작아지는 순서로 정렬
2) Order By 기본 구조
select 카테고리컬럼(원하는컬럼 아무거나), sum(계산 컬럼),
from
group by 카테고리컬럼(원하는컬럼 아무거나)
order by 정렬을 원하는 컬럼 (카테고리컬럼(원하는컬럼 아무거나), sum(계산 컬럼) 둘 다 가능)
[실습] Order By
1. 음식 종류별 주문 금액 합계를 ‘주문 금액 합계’ 기준으로 내림차순 정렬
SELECT cuisine_type, sum(price) sum_of_price
from food_orders
group by cuisine_type
order by sum(price) desc
2. 음식점별 주문 금액 최댓값 조회하기 - 최댓값 기준으로 내림차순 정렬
SELECT restaurant_name, max(price) max_price_restaurant
from food_orders
group by restaurant_name
order by max(price) desc
3. 고객을 이름과 성별 순으로 오름차순으로 정렬하기 (성별은 여성 먼저 정렬 됨)
SELECT *
from customers
order by gender, name
4. SQL 문법의 기본 구조🔥
1) 드디어 완성된 SQL 문법의 기본 구조
select
from
where
group by
order by
💡[ Tip ] SQL생각 흐름 🧠 (수정할 수 있습니다.)
1. 기본구조를 적기 : select from where
2. 어떤 데이터를 가져올 테이블을 적기 : from 테이블
→ 만약 조건이 잘 파악이 안 되면 (전체) 테이블만 우선 실행하여 결과를 보고 조건 찾기
3. 어떤 컬럼을 이용할 것인지 선택 : select 컬럼
4. 어떤 조건을 지정할 지 적기 : where 조건, group by / order by
5. 어떤 함수 (수식) 을 이용해야 하는가 → 갯수 구하는 수식
ADsP 시험 정보가 궁금하신 분들은 여기를 클릭 💨
이전 내용이 궁금하다면 여기를 클릭 💨
🌈 오늘 하루도 힘차게 보낸 모두 좋은 하루 되세요🌆
'SQL' 카테고리의 다른 글
[TIL] SQL_6일차(카테고리 만들기,수수료 구하기,cast( as )) (0) | 2024.03.29 |
---|---|
[TIL] SQL_5일차(replace,substr,concat,if/case) (0) | 2024.03.28 |
[TIL] SQL_3일차(sum,avg,count,distinct,min,max) (0) | 2024.03.26 |
[TIL] SQL_2일차(between,in,like) (0) | 2024.03.24 |
[Today I Learned] 엑셀보다 쉽고 빠른 SQL_1일차(SQL 설치 방법,select,from) (0) | 2024.03.22 |