자 살~짝만 더 복잡하게 Query를 작성해보도록 하자.
지난번에 이어서 오늘도 food_order 데이터베이스를 이용해서 예제를 작성할 거다.
예를 들어서 내가 배달음식을 시켜 먹을 건데, 데이터베이스를 확인해보니 food_preparation_time과 delivery_time Column이 있다. 아무래도 배달 시간이 빠르면 빠를 수록 좋은데, 주변 음식점들의 평균 배달 시간을 확인해서 평균보다 훨씬 빠르게 걸리는 음식점을 찾고 싶을 때,
select avg(delivery_time) as '배달음식시간'
from food_orders
이런 식으로 내 배한테 평균 24분정도만 더 기다려달라고 말할 수 있을 것이다.
다음으로 레스토랑에서 지금 몇명의 고객들이 주문을 해 왔는지를 알아볼 수도 있을 것이다.
그런 상황에 COUNT를 사용해서 필요한 데이터를 찾아볼 수도 있다.
select COUNT(1) as total_counts, COUNT(DISTINCT customer_id) as count_of_customers
from food_orders
이렇게 몇명의 전체 주문이 들어왔었는지, 그리고 얼마나 다양한 손님들이 주문했었는지를 알아볼 수도 있다.
그리고 역시 지갑이 극심한 다이어트를 고민하고 있을 때, 내가 지금 가장 싸게 먹을 수 있는 밥을 찾고 싶을 수도 있다.
select restaurant_name, cuisine_type, min(price)
from food_orders
그래도 먹는 김에 무슨 음식이 제일 쌀지 레스토랑 이름하고 무슨 나라 음식인지도 추가해봤는데, 세상에 우리나라 음식이 이렇게나 싸다니. 한가위 레스토랑 만세
다음으로 음식 종류별 주문 금액 합계를 조회할 때! GROUP BY라는 키워드를 사용한다.
select cuisine_type, sum(price)
from food_orders
GROUP BY cuisine_type
그리고 이번엔 모든 레스토랑을 ABC 순서대로 이쁘게 정렬해 보는 시간을 갖도록 하자.
ORDER BY 키워드다.
select DISTINCT restaurant_name, cuisine_type
from food_orders
order by restaurant_name
마지막으로 이 모든걸 한번에 쓰려고 할 때 사용하는 키워드의 순서에 유의하자.
죽어도 이 규칙을 벗어나면 안돼... 는 아니지만, 그래도 코드는 가독성이 중요하니까 가급적 지켜서 사용하자!
SELECT => FROM => WHERE => GROUP BY => ORDER BY
3주차때는 SQL 문자 데이터를 다듬고, 조건에 맞게 계산하며, 오류를 해결하는 방법에 대해 배운다!
'내일배움캠프 Spring 3기 > SQL 실무 기초' 카테고리의 다른 글
SQL 실무 기초 (5) - 오류 대처, Pivot Table, 다양한 SQL 심화 문법 (1) | 2024.08.14 |
---|---|
SQL 실무 기초 (4) - Subquery, Join (0) | 2024.08.12 |
SQL 실무 기초 (3) - 문자 다듬기, 수치 계산/문자 연산 (0) | 2024.08.10 |
SQL 실무형 기초 (1) - 데이터베이스 이해 / SELECT, FROM, WHERE문 이용하기 (0) | 2024.08.07 |