joinInRealProject
์๋๋ ์ค๋ฌด์์ ๋ฐ์ดํฐ ์ถ์ถ์ ์ํด์ ์ฌ์ฉํ๋ ์ฟผ๋ฆฌ์ด๋ค.
bond : ์ฑ๊ถ ํ
์ด๋ธ
payoff_sheet : ์ํ๊ธ ์ง๋ถ ๋ด์ญ ํ
์ด๋ธ
product : ์ฑ๊ถ์ ๋ฐํ์ผ๋ก ์์ฑํ ๋ชจ์ง ์ํ ํ
์ด๋ธ
์ฌ๊ธฐ์์ bond์ product๋ ์ผ๋์ผ ๊ด๊ณ์ด๊ณ (์ฑ๊ถ ํ๋์ ์ํ ํ๋), payoff_sheet์์๋ ์ํ๊ธ ์ง๋ถ ๋ด์ญ์ ๋ชจ๋ ๊ธฐ๋กํ๋ ์ฅ๋ถ๊ฐ์ ๊ฐ๋ ์ผ๋ก ์ ์ํ๋ค. ๊ทธ๋ฌ๋๊น payoff_sheet๋ ์ํ๊ธ์ ์ง๋ถํ์ ๊ฒฝ์ฐ ๋ฐ์ดํฐ๊ฐ ๋ก์ฐ๋ก ์์ด๋ ๊ฒ์ด๋ค.
from๊ตฌ๋ฌธ๋ถํฐ ๋ณด์. b left join ljt๋ก left join์ ํ ํ ์ด๋ธ์ ๋ง๋ค์๋ค. ljt๋ ์ผ๋ฐ ํ ์ด๋ธ์ด ์๋๋ผ, payoff_sheet์์ bond_id, sum(payoff_money) ๋ ๊ฐ์ ์ปฌ๋ผ๋ง ์ ํํ ์ปค์คํ ํ ์ด๋ธ์ด๋ค. ๊ทธ๋ฆฌ๊ณ group by bond_id๋ฅผ ํด์คฌ๊ธฐ ๋๋ฌธ์ bond_id๋ณ๋ก sum์ด ์ ์ฉ๋ payoff_money๋ฅผ ํ์ธํ ์ ์์ ๊ฒ์ด๋ค.
์ด left join์ ํ ํ ์ด๋ธ์ ๋ํด์ productํ ์ด๋ธ๋ inner join์ ํด์ ์ด 3๊ฐ์ ํ ์ด๋ธ์ ์ ์ ํ ๋งคํํ ๊ฒ์ด๋ค.
์ฃผ์ํด์ผํ ๊ฒ์ bond as b left join์ ํ๋๋ bond as b inner join์ ํ๋๋๋ ๊ฒ์ธ๋ฐ ์ด ์กฐ์ธ์ ์ข ๋ฅ์ ๋ฐ๋ผ ๊ฒฐ๊ณผ๋ ๋ฌ๋ผ์ง๋ค.
inner join์ ํ๊ฒ ๋๋ฉด ๊ทธ์ ๋ฐ๋ผ ์กฐ๊ฑด์ ์ถฉ์กฑ ๋ชปํ๋ bond๋ก์ฐ๋ค์ด ์ญ์ ๋จ์ ๋ฐ๋ผ ijt.activated_at < '2021-07-30 00:00:00' and ijt.activated_at >= '2021-07-01 00:00:00' ์ ๋ง์กฑ์ํค๋ ๋ก์ฐ๋ค์ด ์ค์ด๋ค๊ฒ ๋๋ค.
where์ ์ ijt.activated_at ์กฐ๊ฑด์ ๋ชจ๋ product์ ๋ํด์ ์คํํด์ผ ํ์ง๋ง ์๋ต๋ product๋ค์ด ์กด์ฌํ๊ฒ ๋๋ ๊ฒ์ด๋ค.
AS ljt ON b.id = ljt.bond_id๋ถ๋ถ์์ ์ํ๋ ๊ธ์ก์ด ์๋ค๋ฉด ljt์ bond_id๊ฐ ์์ด์ ์กฐ๊ฑด์ ๋ง์กฑ์ํค์ง๋ง ์ํ๋ ๊ธ์ก์ด ์๋ค๋ฉด ljt์ bond_id๊ฐ ์์ด์ ์กฐ๊ฑด์ ๋ง์กฑ์ํค ๋ชปํ๊ธฐ ๋๋ฌธ์ inner joinํ ๊ฒฝ์ฐ ์กฐ๊ฑด์ ๋ง์กฑ์ํค์ง ๋ชปํ๋ค๋ฉด ๋ก์ฐ๋ ์ญ์ ๋๋ค.
๋ฐ๋ผ์ inner join๊ณผ left join์ ์ฐจ์ด์ ์ ๋ช ํํ ์๊ณ ์ ์ฌ์ ์์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ค์ํ๋ค.
Last updated