본문 바로가기

학습 내용 정리/sql

SQL Groupby Orderby : 스파르타 코딩클럽 엑셀보다 쉬운 SQL 2주차

728x90

SQL은 진도가 빠른 것 같다. 신난다.

1. Group by

SELECT name, count(*)  from users
group by name

* 주차별로 오늘의 다짐 수 구하기

SELECT week, count(*) from checkins 
GROUP by week

2. min

최소값
min(필드명)

SELECT week, min(likes) from checkins 
GROUP by week

3. max

최대값

SELECT week, max(likes) from checkins 
GROUP by week

4.avg

평균값

SELECT week, avg(likes) from checkins 
GROUP by week

5. round

round(반올림 하고 싶은 것, 소숫점 자리)

SELECT week, round(avg(likes),2) from checkins 
GROUP by week

 

6. sum

합계

SELECT week,sum(likes) from checkins 
GROUP by week

 

7. Order by

정렬 (기본적으로 오름차순)

SELECT name,COUNT(*) from users 
GROUP by name
order by count(*)

내림차순 desc

(오름차순 asc)

SELECT name,COUNT(*) from users 
GROUP by name
order by count(*) desc

8. ;

쿼리의 끝을 표시. 붙이지 않아도 된다.
 

9. 응용

웹개발 종합반의 결제수단 별 주문 건수

SELECT payment_method , count(*) from orders 
WHERE course_title = '웹개발 종합반' 
group by payment_method
order by count(*);

Gmail 을 사용하는 성씨별 회원수 

SELECT name, count(*) from users 
WHERE email like '%@gmail.com'
order by name

Course_id 별 오늘의 다짐에 달린 평균 like 갯수 구해 보기

SELECT course_id, avg(likes) from checkins
group by course_id

10. Alias

(알리아스) 라고 읽는다. 
별칭 기능.

가능하면 짧게 만든다. 

SELECT * FROM orders o
WHERE o.course_title = '앱개발 종합반'

orders 를 o 라고 부르겠다

as

SELECT payment_method , count(*) as cnt FROM orders o
WHERE course_title = '앱개발 종합반' 
group by payment_method

count를 cnt라 부르겠다

11. 숙제

네이버 이메일을 사용하여 앱개발 종합반을 신청한 주문의 결제수단별 주문 건 수 세어보기

SELECT payment_method ,count(*) from orders o 
where course_title = '앱개발 종합반' and email like '%@naver.com'
group by payment_method

12. 소감

오늘은 막힘 없이 수월하게 할 수 있었다. 즐겁다. 바로 다음 강의로~