728x90
스파르타 SQL 강의 2주차
DISTINCT (뚜렷이 다른[구별되는], 별개의) : 중복 값을 제거
select count(1) count_of_orders,
count(distinct customer_id) count_of_customers
from food_orders
/* count(1),count(*)은 전체의 개수를 구하라는 뜻.
GROUP BY : 범주별 연산하기
select 카테고리컬럼(원하는컬럼 아무거나),
sum(계산 컬럼),
from
group by 카테고리컬럼(원하는컬럼 아무거나)
[실습1] 음식점별 주문 금액 최댓값 조회하기
select restaurant_name,
MAX(price) max_price
from food_orders
GROUP BY restaurant_name
[실습2] 결제 타입별 가장 최근 결제일 조회하기
select pay_type,
MAX(date) recent_date
from payments
group by pay_type
ORDER BY : 정렬하기
기본구조
select 카테고리컬럼(원하는컬럼 아무거나),
sum(계산 컬럼),
from
group by 카테고리컬럼(원하는컬럼 아무거나)
order by 정렬을 원하는 컬럼 (카테고리컬럼(원하는컬럼 아무거나), sum(계산 컬럼) 둘 다 가능)
/* 내림차순: order by sum(컬럼) desc
select cuisine_type,
sum(price) sum_of_price
from food_orders
group by cuisine_type
order by sum(price)
/* order by sum_of_price로 써도 무관
[실습1] 음식점별 주문 금액 최댓값 조회하기 - 최댓값 기준으로 내림차순 정렬
select restaurant_name,
MAX(price) max_price
from food_orders
group by restaurant_name
order by MAX(price) DESC
* SELECT restaurant_name, → 컴마 생략하니 에러가 났다.
[실습2] 고객을 이름 순으로 오름차순으로 정렬하기
select *
from customers
order by name
--
두가지 조건으로 정렬할 경우
order by gender, name
여성의 오름차순 이름 -> 남성의 오름차순 이름 순으로 정렬됨
기본 구조는 항상 SELECT -> FROM -> WHERE -> GROUP BY -> ORDER BY
[과제] 음식 종류별 가장 높은 주문 금액과 가장 낮은 주문금액을 조회하고, 가장 낮은 주문금액 순으로 (내림차순) 정렬하기\
select cuisine_type,
MAX(price) max_price,
MIN(price) min_price
FROM food_orders
GROUP BY cuisine_type
ORDER BY min(price) DESC
728x90
'내일배움캠프 > SQL' 카테고리의 다른 글
[SQL]3주차_IF, CASE (조건에 따라 포맷을 다르게 지정하기) (0) | 2024.11.14 |
---|---|
[SQL]3주차_Query 결과를 바로 사용할 수 없는 경우(REPLACE, SUBSTRING, CONCAT) (0) | 2024.11.14 |
[SQL]사전캠프과제6 (0) | 2024.11.13 |
[SQL]사전캠프과제_4,5 (0) | 2024.11.08 |
[SQL]사전캠프과제_1 (0) | 2024.11.07 |