[SQL][스파르타] 2주차 group by, order by

Regina·2022년 10월 25일
0

SQL

목록 보기
5/9

group by 로 묶어서 보기

주차별로 ~
같은 경우에는 group by week
~별로는 대부분 다 group by 라고 보면 됨.

소수점

select week, round(avg(likes),2) from checkins c 
group by week

반올림 하고 싶을 때는 round( ) 라운드 안의 숫자는 소숫점 몇번째 자리까지 나오게 할 건지.

min, max, avg, sum 최소 최대 평균값 합계 구하기

오름차순 내림차순 order by

select name, count(*) from users u 
group by name 
order by count(*) desc

desc 는 내림차순 asc는 오름차순인데 안 써줘도 됨

순서

쿼리 실행되는 순서 from -> group by -> select -> order by
쿼리를 작성할 때도 데이터가 어떻게 구성되어 있는지 보고, 어떤 것으로 묶을 것인지, 맨 마지막에 정렬한다고 생각하고 작성해야 함.
order by는 알파벳, 시간, 숫자 다 정렬 가능하다.

sql 쿼리 작성 팁

1) show tables로 어떤 테이블이 있는지 살펴보기
2) 제일 원하는 정보가 있을 것 같은 테이블에 select * from 테이블명 limit 10 쿼리 날려보기
3) 원하는 정보가 없으면 다른 테이블에도 2)를 해보기
4) 테이블을 찾았다! 범주를 나눠서 보고싶은 필드를 찾기 (group by)
5) 범주별로 통계를 보고싶은 필드를 찾기 (count, avg, min, max, sum)
6) SQL 쿼리 작성하기! (조건문 where by, 문자열은 like '%')

알리아스 Alias 별칭 만들기

조금더 쿼리를 구체적으로 지시할 수 있음 별칭을 이용해서.

select * from orders o
where o.course_title = '앱개발 종합반'

orders 라는 테이블을 o 라고 별칭을 지어주고, 나는 orders 테이블에 있는 course_title 이 앱개발 종합반인 데이터를 가져올거야.

select payment_method, count(*) as cnt from orders o
where o.course_title = '앱개발 종합반'
group by payment_method 

count(*)이 보기 좀 그러니까, as cnt 로 해서 cnt 라는 별칭을 붙일 수도 있음

profile
하루하루 더 나은 사람이 되어보자

0개의 댓글