SQL에서의 count, group by, order by, replace

ch.2·2024년 6월 24일

SQL

목록 보기
2/9

count

지정한 테이블, 각 컬럼이 몇 개의 데이터를 가지고 있는지 구하는 함수.
count (컬럼명)을 쓰거나 count( * ) 혹은 count(1) 이라고 쓰면 된다.
count 와 distinct 를 함께 쓰면 중복된 값을 제거하고 출력되므로 몇 개의 값을 가지고 있는지 알고 싶을 때 사용된다.

e.g.)

select count(1) count_of_orders,
	   count(distinct customer_id) count_of_customers
from food_orders

count(1)을 사용함으로써 전체 주문건수를 알 수 있고
count(distinct customer_id)를 사용함으로써 주문한 고객의 수를 알 수 있다.


SQL 실행 결과

group by

컬럼 내의 데이터별로 결과물을 보고 싶을 때, where절을 각각 작성하는 것은 비효율적이기 때문에 사용하는 구문.
group by 절 뒤에 컬럼명을 다 적어도 되지만, 더 편리하게 사용하는 방법은 select 절에 적은 컬럼 순서대로 숫자로 쓰는 것!

e.g.) 음식점별 주문 금액 최댓값

select restaurant_name,
	   max(price) max_of_price
from food_orders
group by 1


SQL 실행 결과

order by

컬럼 내의 데이터를 오름차순/내림차순으로 정렬하고 싶을 때 사용하는 구문.
결과값을 정렬하는 구문이기 때문에 가장 마지막에 쓴다.
order by A : A 컬럼을 기준으로 결과값을 정렬 (오름차순)
order by A desc : A 컬럼을 기준으로 결과값을 정렬 (내림차순)

e.g.) 음식 종류별로 주문 금액 합계를 주문 금액 합계 기준으로 내림차순 정렬

select cuisine_type,
	   sum(price) sum_of_price
from food_orders
group by cuisine_type
order by sum(price) desc


SQL 실행결과, desc 없으면 오름차순으로 정렬됨.

replace

데이터에 나와 있는 글자를 다른 글자로 바꾸고 싶을 때 사용한다.
e.g.1) 학교명이 변경되었을 때:
강여중 -> 해람중:
replace(바꿀 컬럼, '강여중', '해람중')

e.g.2) 식당명의 'Blue Ribbon'이 'Pink Ribbon'으로 바뀌었을 때

select restaurant_name "원래 식당명",
	   replace(restaurant_name, 'Blue', 'Pink') "바뀐 식당명"
from food_orders
where restaurant_name like '%Blue Ribbon%'


where 절을 안 쓰면 식당명에 Blue Ribbon이 없는 식당도 전부 나옴.

tip!

SQL에서 함수를 적을 때는 대소문자를 구분하지 않음. 하지만 컬럼명의 대소문자 구분은 필수!
각 구문을 적을 땐 ,를 적지 않아도 되지만, 구문 내에 여러가지 데이터를 사용할 경우 , 적는 것 놓치지 말기!

profile
데이터 분석 공부중

0개의 댓글