[내일배움캠프 사전공부 SQL 2주차]

안떽왕·2023년 2월 18일
0

GROUP BY

지정한 필드명으로 그룹화

SELECT name, COUNT(*)  FROM users
GROUP BY name

from → group by → select 순서로 실행

SELECT week, MIN(likes)  FROM checkins
GROUP BY week

min을 이용해서 그룹화된 주마다 최소 좋아요 갯 수 조회 가능
max를 이용하면 최고값을 볼 수 있고 avg를 사용하면 평균값 조회 가능
sum을 이용하면 총합 조회 가능

SELECT week, round(avg(likes),1)  FROM checkins
GROUP BY week

round로 avg를 감싸서 정수로 표현할 수 도 있고, 뒤에 1을 붙힘으로서 소수점 첫 째자리까지 노출시킬 수 도있음

ORDER BY

정렬

SELECT name, COUNT(*) FROM users
GROUP BY name
ORDER BY count(*) DESC

users테이블에 name별로 그룹화를 시키고 name별 갯수를 카운트 해주고 카운트가 많은 순으로 정렬
뒤에 desc를 붙히면 내림차순, 붙이지 않으면 오름차순으로 정렬
from → group by → select → order by 순으로 실행

where문과 함께 쓰기

SELECT payment_method, COUNT(*) FROM orders
WHERE course_title = '웹개발 종합반'
GROUP BY payment_method
ORDER BY COUNT(*)

별칭 사용하기

SELECT payment_method, COUNT(*) AS cnt  FROM orders o
WHERE  o.course_title = '앱개발 종합반'
GROUP BY payment_method

orders 계속 타이핑하면 불편하니 뒤에 o를 붙혀서 앞으로 o라고 부르겠다 라고 별칭 지정
나중에 특정 필드를 where로 볼때도 o.을 붙힘으로서 이게 orders 에서 찾으라고 하는거다 라고 인식할 수 있음
count()을 통해 결과를 도출하면 밑 결과창의 컬럼명이 count()으로 자동 등록되는데 뒤에 as cnt를 붙히면 컬럼명이 cnt로 바뀐다 다른 글자로 하고싶으면 cnt 대신 다른 문자를 넣으면 된다.

2주차 숙제

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

SELECT payment_method, COUNT(*) FROM orders o
WHERE  o.course_title = '앱개발 종합반' 
	AND email LIKE '%naver.com'
GROUP BY payment_method ![](https://velog.velcdn.com/images/william741/post/6fe09c37-ae27-4151-ad59-f933ed782d3e/image.png)
profile
이제 막 개발 배우는 코린이

0개의 댓글