PM 부트캠프 사전캠프 5일차 후기
어제는 팀원들과 즐겁게 아이스브레이킹한다고 놀았던 만큼 오늘은 이야기는 줄이고 각자 온라인 강의를 열심히 듣기로 했다.

그리고 2조 팀장님이 개발자 출신으로 SQL 고수여서 SQL에 대해서 궁금한 거나 안 풀리는 것들이 있으면 알려주는 질의응답시간을 매일매일 해주신다고 하셨다😀👍 천사아닌교?!👼

오늘 4시 30분에 곰돌이가 있는 방에 모여서 SQL 질의응답도 받고 사전퀘스트도 같이 풀어보고 노션을 가르쳐준다고 해서 나도 쪼르르르 가서 참석했다🏃♀️
- 오늘의 질문 : 쿼리를 쓸때 한 줄 띄우기를 하고 select 같은 절만큼 띄우려면 어떻게 해야 하나요?
SQL 공부 3일차
실습
| 30,000원 이상 주문한 내역이 몇건인지 알려줘 |
| select count(1) '3만원 이상 주문한 내역수' from food_orders where price>=30000 |
count(order_id) 라고 적어도 됨
| 한국 음식 주문의 평균 음식가격을 알려줘 |
| select avg(price) as average_price from food_orders where cuisint_type='Korean' |
값을 적어줄 때는 대소문자를 꼭 구분해야 함(Korean)
◆ Group by
- 종류별로 값을 구하기 위해서 where 절을 사용해 수십 개의 쿼리(Query)를 작성하는 것은 비효율적입니다. 효율적으로 쿼리를 작성하기 위해서 Group by 절을 씁니다. Group by은 아래 그림처럼 같은 값을 가진 행끼리 하나의 그룹(카테고리)으로 뭉쳐줍니다.

| Group by 기본 구조 |
| select 카테고리 컬럼(원하는 컬럼 아무거나), 집계함수(계산 컬럼) from 테이블 group by 카테고리 컬럼(원하는 컬럼 아무거나) |
| 음식점별 주문 금액의 최댓값을 조회해줘 |
| select restaurant_name, max(price) '최대 주문금액' from food_orders group by restaurant_name |
| 결제 타입별 가장 최근 결제일을 조회해줘 |
| select pay_type '결제타입', max(date) '최근 결제일' from payments group by pay_type |
◆ Order by
- select 문을 사용할 때 출력되는 결과물은 테이블에 입력된 순서대로 출력됩니다. 조회한 결과 데이터를 원하는 순서대로 정렬하기 위해서 우리는 Order 절을 이용하여 내림차순과 오름차순으로 데이터를 정렬할 수 있습니다.
| order by 기본 구조 |
| select 카테고리 컬럼(원하는 컬럼 아무거나), 집계함수(계산 컬럼) from 테이블 group by 카테고리 컬럼(원하는 컬럼 아무거나) order by 정렬을 원하는 컬럼(원하는 컬럼 아무거나), 집계함수(계산컬럼) #오름차순 |
내림차순은 order by 절 뒤에 desc(descending)를 붙여준다
| 음식 종류별 주문 금액 합계를 오름차순으로 정렬해줘 |
| select cuisine_type, sum(price) sum_of_price from food_orders group by cuisine_type order by sum(price) |

| 음식점별 주문 금액 최댓값을 조회하고 내림차순 정렬해줘 |
| select restaurant_name, max(price) '최대 주문금액' from food_orders group by restaurant_name order by max(price) desc |
| 고객을 이름 순으로 오름차순 정렬해줘 |
| select * from customers order by name |
◆ SQL의 기본구조
- select/ from/ where/ group by/ order
퀴즈
조회할 데이터를 SQL 구조에 맞게 작성해 보세요
퀴즈1
- order by sum(delivery_time) desc
- group by cuisine_type
- where day_of_the_week=’Weekend’
- from food_orders
- select cuisine_type, sum(delivery_time) total_delivery_time
정답 5-4-3-2-1 (주말 동안 음식 종류별 배달시간의 합계를 내림차순으로 정렬해 줘)
select cuisine_type,
sum(delivery_time) total_delivery_time
from food_orders
where day_of_the_week='Weekend'
group by cuisine_type
order by sum(delivery_time) desc
퀴즈2
- where age between 20 and 40
- select age, count(name) count_of_name
- order by age
- group by age
- from customers
정답 2-5-1-4-3 (20에서 40살 사이에 있는 고객 데이터를 나이별로 이름의 개수를 나이수의 오름차순으로 정렬해 줘)
select age,
count(name) count_of_name
from customers
where age between 20 and 40
group by age
order by age
'PM 부트캠프' 카테고리의 다른 글
| [PM 부트캠프 - 사전캠프 7일차 후기] (2) | 2025.06.10 |
|---|---|
| [PM 부트캠프 - 사전캠프 6일차 후기] (0) | 2025.06.04 |
| [PM 부트캠프 - 사전캠프 4일차 후기] 아이스브레이킹 (1) | 2025.05.29 |
| [PM 부트캠프 - 사전캠프 3일차 후기] SQL (0) | 2025.05.28 |
| [PM 부트캠프 - 사전캠프 2일차 후기] 엑셀보다 쉽고 빠른 SQL (0) | 2025.05.27 |