Group by : 동일한 범주를 갖는 데이터를 하나로 묶어서, 범주별 통계를 내주는 것
"~별로" 라는 말이 나오면 무조건 group by!
묶은 것과, 묶은 것 당의 카운트를 보여줘!
select 범주별로 세어주고 싶은 필드명, count(*) from 테이블명 #중간 부분을 2번째에 써줌
group by 범주별로 세어주고 싶은 필드명; #1번째로 쓰고
SELECT name,count(*) from users
group by name
Order by : 정렬하기
select name, count(*) from users
group by name
order by count(*) desc;
더보기
위 쿼리가 실행되는 순서: from → group by → select → order by
- from users: users 테이블 데이터 전체를 가져옵니다.
- group by name: users 테이블 데이터에서 같은 name을 갖는 데이터를 합쳐줍니다.
- select name, count(*): name에 따라 합쳐진 데이터가 각각 몇 개가 합쳐진 것인지 세어줍니다.
아래 코드가 실행되는 순서
from -> where -> group by -> select -> order by
SELECT payment_method,count(*) from orders o
where course_title ='웹개발 종합반'
group by payment_method
order by count(*)
join : 두 테이블의 공통된 정보 (key값)를 기준으로 테이블을 연결해서 한 테이블처럼 보는 것
1.left join
2. Inner join
쿼리 실행 순서
from → join → select
SELECT * from enrolleds e
inner join courses c
on e.course_id =c.course_id
중요한 문제!
7월10일 ~ 7월19일에 가입한 고객 중, 포인트를 가진 고객의 숫자, 그리고 전체 숫자, 그리고 비율을 보고 싶어요!
select count(pu.point_user_id) as pnt_user_cnt,
count(u.user_id) as tot_user_cnt,
round(count(pu.point_user_id)/count(u.user_id),2) as ratio
from users u
left join point_users pu on u.user_id =pu.user_id
where u.created_at BETWEEN '2020-07-10' and '2020-07-20'
-union : 결과물 합치기
'Today I Learned' 카테고리의 다른 글
211028TIL_서버리스(2) - 백엔드 (0) | 2021.10.29 |
---|---|
211028TIL_서버리스 프론트엔드(1)/SQL-서브쿼리/자바 환경 설치 (0) | 2021.10.28 |
211026TIL_트리,힙 / SQL (0) | 2021.10.26 |
TIL1021_알고리즘 강의 시작 (0) | 2021.10.21 |
2차 프로젝트 마무리_KPT (0) | 2021.10.19 |