PM 부트캠프

[PM 부트캠프 - 사전캠프 5일차 후기]

미미유❤ 2025. 5. 30. 17:50

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

  1. order by sum(delivery_time) desc
  2. group by cuisine_type
  3. where day_of_the_week=’Weekend’
  4. from food_orders
  5. 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

  1. where age between 20 and 40
  2. select age, count(name) count_of_name
  3. order by age
  4. group by age
  5. 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