[스파르타코딩클럽][왕초보] 엑셀보다 쉬운, SQL 4주차 :: Subquery (where, select, from, inner join), with절,(문자열, Case)
<강의 소감>
3주차부터 조금씩 난이도가 생기는 듯하면서4주차에서도 5프로정도는 응용이 안되는 부분이 생긴다.그래도 계속 연습하다보면 더 정확하게 쓰지 않을까??sqld 자격증에 왠지 도전해 끝장을 보고 싶지만 아직까지는 진로를 어떻게 할지 몰라서여기까지 배운 것으로 의미를 다하고 싶다.
1-3주차 내용 + 문법정리
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;
나는 왜 지금도 공부를 하는가? 지난 날의 회고 (0) | 2024.04.25 |
---|---|
다시쓰는 성장일지 :: 코드잇 프론트앤드 부트캠프 국비수업 준비하기 (0) | 2024.04.23 |
[스파르타코딩클럽][왕초보] 엑셀보다 쉬운, SQL 3주차 :: Inner Join, Left Join, union (0) | 2023.04.03 |
[스파르타코딩클럽][왕초보] 엑셀보다 쉬운, SQL 2주차 :: Group by, Order by (0) | 2023.03.29 |
[스파르타코딩클럽] [왕초보] 엑셀보다 쉬운, SQL 1주차 :: select from , where 조건절 (0) | 2023.03.29 |