sql

[250218] sql 기본 (수치 연산)

jeonieee 2025. 2. 18. 16:09
  • 함수
  • sum (합계), avg (평균), count (수 세기), 
    • 근데 이때 select 부분에 사용해야 함
  •  예제. 주문 금액이 3만원 이상인 주문건의 갯수 구하기
select COUNT(1)
from food_orders
where price >=30000
  • 예제 2. 한국 음식의 주문 당 평균 금액 구하기
  • 내가 한 오답
SELECT COUNT(cuisine_type = 'korean')
from food_orders
where AVG(price)
  •  정답
select AVG(price)
from food_orders
WHERE cuisine_type = 'Korean'

 

  • GROUP BY : 카테고리 지정 연산 
select 카테고리컬럼(원하는컬럼 아무거나),
       sum(계산 컬럼),
from
group by 카테고리컬럼(원하는컬럼 아무거나)
  • 예시
  • 결제 타입 별 가장 최근 주문일 찾기 
select pay_type,
       max(date)
from payments
group by pay_type

 

  • ORDER BY : 정렬
select 카테고리컬럼(원하는컬럼 아무거나),
       sum(계산 컬럼),
from
group by 카테고리컬럼(원하는컬럼 아무거나)
order by 정렬을 원하는 컬럼 (카테고리컬럼(원하는컬럼 아무거나), sum(계산 컬럼) 둘 다 가능) [내림차순 desc]
      • 예시
      • 음식점별 주문 금액 최댓값 조회하기 - 최댓값 내림차순
select restaurant_name,
       max(price)
from food_orders
group by restaurant_name
order by max(price) desc

 

  • 최종 과제
  • 음식 종류별 가장 높은 주문 금액과 가장 낮은 주문금액을 조회하고, 가장 낮은 주문금액 순으로 (내림차순) 정렬하기 
  • 내가 쓴 오답 
select price
from food_orders
min(price), max(price)
group by cuisine_type
order by min(price) desc
  • 정답
select cuisine_type,
       min(price) min_price,
       max(price) max_price
from food_orders
group by cuisine_type
order by min(price) desc

 

select

(min, max)

from

where

group by

order by 순으로