Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Tags more
Archives
Today
Total
관리 메뉴

요리사에서 IT개발자로

스파르타 코딩클럽(부트캠프) SQL 입문 2장 본문

SQL

스파르타 코딩클럽(부트캠프) SQL 입문 2장

H.S-Backend 2024. 3. 14. 16:07
한 번에 계산하는 SQL 컬럼
SUM(합계)

AVERAGE(평균)
COUNT(갯수)

MIN(최솟값)
MAX(최댓값)

숫자 연산종류 
연산자 설명
+ 더하기
- 빼기
* 곱하기
/ 나누기

 


 

전체 데이터  갯수 구하기
데이터 갯수 구할 떄 : COUNT(컬럼) * 
컬럼명 대신 1 혹은 *사용가능
몇 개의 값을 가지고 있는지 구할 때 : DISTINCT(컬럼) 

 

사용 예시 1 (주문건수와, 주문 한 고객 수 구하기)
select count(1) count_of_orders,
           count(distinct customer_id) count_of_customers
from food_roders

 

사용예시 2 (데이터의 범위 최솟값과 최댓값 구하기)
select min(price) min_price,
          max(pirce) max_price
from food_orders

 


주문금액 30,000원 이상인 주문 건의 개수 구하기

 

Query를 적기 전에 흐름 정리

1. 어떤 테이블에서 데이터를 뽑을 것인가 - 주문테이블 - from food_orders
2. 어떤 컬럼을 이용할  것인가 - 주문금액, 주문번호 - order_id, price
3. 어떤 조건을 지정해야 하는가 - 30,000원 이상 - where price >= 30000
4. 어떤 함수(수식)를 이용해야 하는가 - 개수 구하는 수식 - count(order_id) 혹은 count(1)

 

사용 예시 

select count(order_id) count_of_orders
from food_orders
where price>=30000


GROUP BY 란
WHERE 절을 사용해서 수십 개의 Query를 작성하지 않고 카테고리를 지정하여 수식 함수로 연산하는 것

 

기본구조
select 카테고리컬럼(원하는것),
           sum(계산 컬럼)
from
group by 카테고리컬럼(원하는것)

Group by 예시
select cuisine_type,
          sum(price) sum_of_price
from food_orders 
group by cuisine_type

 

Query를 적기 전에 흐름 정리  (음식 주문별 금액 최댓값)
  1. 어떤 테이블에서 데이터를 뽑을 것인가 - 주문테이블 - from food_orders
  2. 어떤 컬럼을 이용할  것인가 - 음식점 이름, 주문금액 - restaurant_name, price
  3. 어떤 조건을 지정해야 하는가 - 없음
  4. 어떤 함수(수식)를 이용해야 하는가 - 최댓값 - max(price)
사용예시 
select restaurant_name,
          max(price) "최대 주문금액"
from food_orders
group by restaurant_name
Query를 적기 전에 흐름 정리 (결제 타입별 가장 최근 결제일 조회)
  1. 어떤 테이블에서 데이터를 뽑을 것인가 -  결제테이블 - from payments table
  2.  어떤 컬럼을 이용할  것인가 - 결제타입, 결제일 - pay_type, date
  3. 어떤 조건을 지정해야 하는가 -  없음
  4. 어떤 함수(수식)를 이용해야 하는가 - 최댓값 max(date)
사용예시 
select pay_type "결제 타입",
             max(date) "최근 결제일"
from payments
group by pay_type

Order by 란 
SQL 결과를 원하는 값 기준으로, 오름차순 혹은 내림차순으로 정렬하는 컬럼

 

정렬의 종류
종류 구문 예시
오름차순 생략 order by sum(price)
내림차순 desc order by sum(pirce) desc

 

Order by 기본구조
select 카테고리컬럼(원하는것),
           sum(계산컬럼),
from 
group by 카테고리컬럼(원하는것)
order by 정렬을 원하는 컬럼 (카테고리컬럼(원하는것) ), sum(계산 컬럼)  둘 다 가능하다.

 

Order by 예시 (음식 종류별 주문 금액 합계를 '주문 금액 합계' 기준으로 오름차순 정렬)
select cuisine_type,
         sum(price) sum_of_price
from food_orders
group by cuisine_type
order by sum(price)

 

Query를 적기전에 흐름 정리 (음식 주문 금액 최댓값 조회 - 최댓값 기준으로 내림차순 정렬)
  1. 어떤 테이블에서 데이터를 뽑을것인가 -  음식 주문 - from food_orders
  2.  어떤 컬럼을 이용 할  것인가 - 금액 - restaurant_name, price
  3. 어떤 조건을 지정해야 하는가 -  없
  4. 어떤 함수(수식)을 이용해야 하는가 - 최댓값 max(price), order by desc
사용예시
select restaurant_name
          max(price) "최대 주문금액"
from food_orders
group by restaurant_name
order by max(price) desc

 

Query를 적기전에 흐름 정리 (고객을 이름 순으로 오름차순으로 정렬)
  1. 어떤 테이블에서 데이터를 뽑을것인가 -  고객명단 - from customers
  2.  어떤 컬럼을 이용 할  것인가 - 고객명  -  name
  3. 어떤 조건을 지정해야 하는가 -  없음
  4. 어떤 함수(수식)을 이용해야 하는가 - order by
사용예시
select *
from customers
order by name

 

 

반응형