Query Challenge Cycle 회고
2번
정답 코드:
select td.track_id
from track_details td
left join invoice_line il
on td.track_id = il.track_id
where il.track_id is null
and td.media_type_id = 1
order by td.track_id
오류 상황:
select
t.track_id
from track_details as t left join invoice_line as i
on t.track_id = i.track_id
where t.media_type_id = 1
order by t.track_id asc;
=> 판매 내역에 존재하지 않는 트랙의 트랙 ID만 조회하는 조건 누락
해결 방법
=> 판매 내역에 존재하지 않는 트랙의 트랙 ID(track_id)가 없어야 하기 때문에 is null 사용
3번
정답 코드:
-- select *
-- from inoices
-- where date(invoice_date) between date '2025-01-01' and date '2025-12-31'
-- where date_format(invoice_date, '%Y-%m-%d') between '2025-01-31' and '2025-12-31'
with best_album as (
select td.album_id
from track_details td
join inovice_line as il
on td.track_id = il.track_id
join invoices as i
on i.invoice_id = il.invoice_id
where date_format(invoice_date, '%Y-%m-%d') between '2025-01-01' and '2025-12-31'
group by 1
order by sum(il.unit_price * il.quantity) desc
limit 1
)
select td.name
from tracK_details as td
join best_album as ba
on td.album_id = ba.album_id
order by 1
오류 상황:
select
t.name
from track_details as t
join invoice_line as il
on t.track_id = il.track_id
join invoices as i
on il.invoice_id = i.invoice_id
where
i.invoice_date like ('2025%')
having max(sum(t.unit_price * quantity) over partition by t.name)
order by t.name asc
=> 출력 불가
=> 추가 공부 필
'내일배움캠프' 카테고리의 다른 글
| [내일배움캠프] TIL 41일차 26.03.17(화) (0) | 2026.03.17 |
|---|---|
| [내일배움캠프] TIL 40일차 26.03.16(월) (0) | 2026.03.16 |
| [내일배움캠프] TIL 38일차 26.03.12(목) (0) | 2026.03.12 |
| [내일배움캠프] TIL 37일차 26.02.27(금) (0) | 2026.02.27 |
| [내일배움캠프] TIL 36일차 26.02.26(목) (0) | 2026.02.26 |