Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- HashSet
- 캡슐화
- git
- 자바
- 상속
- @AllArgsConstructor
- 에러
- 깃허브
- 파이썬
- entity
- 알고리즘
- CRUD
- 기본생성자
- java
- 코드업
- 부스트코스
- Python
- stringbuffer
- 프로그래머스
- @builder
- 부트캠프
- github
- @NoArgsConstructor
- lv1
- 브랜치
- SQL
- HTML
- DTO
- html tag
- Codeup
Archives
- Today
- Total
잉?
[엑셀보다 쉬운 SQL] 3주차 + 기본 sql 문법 본문
테이블을 연결하는 Join
두 테이블의 공통된 정보 (key값)을 기준으로 테이블을 연결해서 한 테이블처럼 보는 것을 의미
Join 종류
Left Join?
select * from users u
left join point_users p on u.user_id = p.user_id
user_id를 기준으로 조인해준다.
없으면 NULL로 보여준다.
*누구에게 누구를 붙이는지 순서가 중요하다.
*한쪽에는 있는데 다른 한쪽에는 없는 것을 가지고 통계내고 싶을 때 사용한다.
💡7월 10일 ~ 7월 19일에 가입한 고객 중, 포인트를 가진 고객의 숫자, 그리고 비율을 보여주세요.
*count는 NULL을 세지 않는다.
즉, is not NULL을 할 필요가 없다.
답)
select count(pu.point) as pnt_user_cnt,
count(u.user_id) as tot_user_cnt,
round(count(pu.point) / 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'
Inner Join?
select * from users u
inner join point_users p on u.user_id = p.user_id
user_id를 기준으로 조인한다 즉, 교집합
*sql 쿼리가 실행되는 순서 (from → join → select)
결과물 합치기, Union
(sql문)
union all
(sql문)
*union안에서는 order by가 무용지물.
즉, 합친상태에서 다시 정렬을 해줘야지, 정렬한 상태로 합치면 효과가 없다.
'데이터베이스(DB) > SQL' 카테고리의 다른 글
[엑셀보다 쉬운 SQL] 4주차 + 기본 sql 문법 (0) | 2023.05.08 |
---|---|
[엑셀보다 쉬운 SQL] 2주차 + 기본 sql 문법 (0) | 2023.05.08 |
[엑셀보다 쉬운 SQL] 1주차 + 기본 sql 문법 (0) | 2023.05.08 |
Comments