상세 컨텐츠

본문 제목

[스파르타코딩클럽][왕초보] 엑셀보다 쉬운, SQL 4주차 :: Subquery (where, select, from, inner join), with절,(문자열, Case)

성장일지

by 모모87 2023. 4. 9. 00:07

본문

<강의 소감>

3주차부터 조금씩 난이도가 생기는 듯하면서4주차에서도 5프로정도는 응용이 안되는 부분이 생긴다.그래도 계속 연습하다보면 더 정확하게 쓰지 않을까??sqld 자격증에 왠지 도전해 끝장을 보고 싶지만 아직까지는 진로를 어떻게 할지 몰라서여기까지 배운 것으로 의미를 다하고 싶다.

 

 

1-3주차 내용 + 문법정리

 

 

[스파르타코딩클럽] [왕초보] 엑셀보다 쉬운, SQL 1주차 :: select from , where 조건절

웹개발 종합을 듣고 두번째 국비 수업이다. 정처기 실기를 대비하는 마음으로 수업을 수강해보는데... 쿼리문으로 데이터를 추출하는 법을 알려주신다. 국비라 완강하면 무료나 다름 없는데...

naynara.tistory.com

 

 

[스파르타코딩클럽][왕초보] 엑셀보다 쉬운, SQL 2주차 :: Group by, Order by

생각보다 빠르게 학습할 수 있었다. 정처기 필기 문제랑 오버랩 되면서 완전 이해가 쏙쏙!! 짧게짧게 동영상 강의가 되어 있어서 지루하지 않고 성취욕이 든다. 퀴즈를 통해 내가 확실히 이해했

naynara.tistory.com

 

 

[스파르타코딩클럽][왕초보] 엑셀보다 쉬운, SQL 3주차 :: Inner Join, Left Join, union

아 조인부터 조금 어렵다. 조금 꼬이면 헷갈린다. 가끔 이해가 안가면 왜 내가 이걸 하고 있지 하면서 새벽에 공부하는 내가 바보같다. 그래도 언젠가는 써먹을 수 있진 않을까....

naynara.tistory.com

 

 

Subquery란?

쿼리 안의 쿼리라는 의미.

 

Where은 조건문?

Subquery의 결과를 조건에 활용하는 방식으로 유용하게 사용.

where 필드명 in (subquery) 이런 방식

 

Select 에 들어가는 Subquery

Select는 결과를 출력해주는 부분

기존 테이블에 함께 보고싶은 통계 데이터를 손쉽게 붙이는 것에 사용

select 필드명, 필드명, (subquery) from .. 

 

 

From 에 들어가는 Subquery (가장 많이 사용되는 유형!)

내가 만든 Select와 이미 있는 테이블을 Join하고 싶을 때 사용

 

With 절

깔금하게 쿼리문을 작성할수 있다.

정의해주고 치환해서 사용

with table1 as (
	select course_id, count(distinct(user_id)) as cnt_checkins from checkins
	group by course_id
), table2 as (
	select course_id, count(*) as cnt_total from orders
	group by course_id
)
select c.title,
       a.cnt_checkins,
       b.cnt_total,
       (a.cnt_checkins/b.cnt_total) as ratio
from table1 a inner join table2 b on a.course_id = b.course_id
inner join courses c on a.course_id = c.course_id

 

substring_index

select user_id, email, SUBSTRING_INDEX(email, '@', -1) from users

 

substring

with table1 as (
	select course_id, count(distinct(user_id)) as cnt_checkins from checkins
	group by course_id
), table2 as (
	select course_id, count(*) as cnt_total from orders
	group by course_id
)
select c.title,
       a.cnt_checkins,
       b.cnt_total,
       (a.cnt_checkins/b.cnt_total) as ratio
from table1 a inner join table2 b on a.course_id = b.course_id
inner join courses c on a.course_id = c.course_id

 

case절

select pu.point_user_id, pu.point,
case 
when pu.point > 10000 then '잘 하고 있어요!'
else '조금 더 달려주세요!'
END as '구분'
from point_users pu;
반응형

관련글 더보기