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 |
Tags
- 생육
- Pivot Table
- Python
- MAPE
- 회귀
- 평가지표
- Mae
- group by
- 딥러닝
- join
- 스마트팜
- 유사도
- 주식가격
- postgres sql
- ML
- solvesql
- SQL
- report lab
- Algorithm
- psycopg
- Programmers
- netron
- 스마트팜코리아
- 데이터분석
- 농정원
- MSE
- minmaxscaling
- 숫자 짝꿍
- 농림수산식품교육문화정보원
- rmse
Archives
- Today
- Total
Positive-Influence-Data
[SQL] 작품이 없는 작가 찾기 본문
❗ 본 포스팅은 Solvesql의 연습문제를 활용합니다. 다양한 SQL 문제를 풀어보고 싶다면 Solvesql를 방문하세요.
이번 문제는 작품이 없는 작가 찾기이다.
문제를 해석하면
- 살아있지않은 작가를 추출한다.
- 등록된 작품이 없는 작가를 추출한다.(join)
- artist_id와 name을 출력한다.
보기에는 간단해보이는 문제이지만 필자는 생각보다 오래걸린듯하다.
select
t1.artist_id,
name
from
(
select
artist_id,
name
from
artists
where
death_year is not null
) as t1
left join (
select distinct
(artist_id) as artist_id
from
artworks_artists
) as t2 on (t1.artist_id = t2.artist_id)
where
t2.artist_id is null;
필자는 각 테이블의 artist_id가 유니크하고 join 했을때 공백인 행이 moma에 작품이 없는 작가라고 판단했다.
살아있지않은 작가를 추출하기 위해 artists 테이블에 death_year가 있는 사람들만 추출했다.(없으면 아직 살아있는 사람) → t1테이블
artworks_artists를 살펴보니 한 사람에 여러작품이 등록되어있는 것을 확인 할 수 있었고 유니크한 artist_id를 추출하기 위해 distinct를 사용해서 중복제거해줬다. → t2테이블
t1기준으로 t1과 t2를 left join해주면 t1에 t2칼럼들이 붙게 되는데 t1에 붙은 칼럼중에 값이 공백이 것들이 존재한다. 이것들이 바로 작품이 없는 artist이다. 이것들을 추출해서 출력하면 된다.
** 사실 distinct안해도 풀리긴하는데 필자의 생각으로는 하는게 더 생각하기 편해서 그렇게 했다.
'SQL' 카테고리의 다른 글
[SQL] 배송 예정일 예측 성공과 실패 (0) | 2022.12.15 |
---|---|
[SQL] 일별 블로그 방문자 수 집계 (0) | 2022.11.29 |
[SQL] 버뮤다 삼각지대에 들어가버린 택배 (0) | 2022.11.28 |
[SQL] 쇼핑몰의 일일 매출액과 ARPPU (0) | 2022.11.24 |
[SQL] 멘토링 짝꿍 리스트 (0) | 2022.11.23 |
Comments