๋ฌธ์ . ๋ค์ SQL ๊ฒฐ๊ณผ๋ก ์๋ง์ ๊ฒ์ ๊ณ ๋ฅด์์ค.
[A] ํ
์ด๋ธ [B] ํ
์ด๋ธ
COL1 COL2 COL1 COL2
------------ ------------
1 A 1 A
2 2
3 B 3 B
4 C
<SQL>
SELECT SUM(A.COL1)
FROM A, B
WHERE A.COL2 <> B.COL2;
1) 10
2) 30
3) 12
4) 8
ํด์ค :
SQL ์ ์ ์ฐจ์ ์ธ์ด๊ฐ ์๋ ๊ตฌ์กฐ์ , ์งํฉ์ ์ธ์ด์ด๋ค.
์ฆ, ์์๋ณด๋ค๋ ์๋ฏธ๊ฐ ์ค์ํ๋ค.
๋ถ์ ๋น๊ต์ฐ์ฐ์ | ์ค๋ช |
A != B | A๋ B์ ๊ฐ์ง์๋ค |
A ^= B | A์ B๋ ๊ฐ์ง์๋ค |
A <> B | A์ B๋ ๊ฐ์ง ์๋ค |
NOT A = B | A์ B๋ ๊ฐ์ง์๋ค |
NOT A > B | A๋ B๋ณด๋ค ํฌ์ง์๋ค |
๊ธฐ์ค์ด A ๊ฐ ๋๋ B ๊ฐ ๋๋ ์์๋ ์๊ด ์์ด ์๋ฏธ๋ง ๊ฐ์ผ๋ฉด ๋๊ณ ๊ฒฐ๊ณผ๋ง ๋ง๊ฒ ์ถ๋ ฅ๋๋ฉด ๋๋ค.
CASE1 ๋ฌธ์ ๋ณด๊ธฐ
CASE1 : A ๊ธฐ์ค์ผ๋ก B๋ฅผ ์ฐ๊ฒฐ
1์ A์ ๋ค๋ฅธ B = 1๊ฑด
2์ NULL ์ ๋น๊ต ๋ถ๊ฐ = 0๊ฑด
3์ B์ ๋ค๋ฅธ A = 1๊ฑด
4์ C์ ๋ค๋ฅธ A, B = 2๊ฑด
1(1๊ฑด),3(1๊ฑด),4(2๊ฑด) = 1+3+4+4 = 12
CASE2 ๋ฌธ์ ๋ณด๊ธฐ
CASE2 : B ๊ธฐ์ค์ผ๋ก A๋ฅผ ์ฐ๊ฒฐ
A ์ ๋ค๋ฅธ B,C 2๊ฑด์ ๊ฐ์ ๊ฐ๊ฐ (3,4)
B ์ ๋ค๋ฅธ A,C 2๊ฑด์ ๊ฐ์ ๊ฐ๊ฐ (1,4)
๊ฐ๊ฐ์ ๊ฐ๋ค์ SUM ํ๋ฉด (3+4+1+4 = 12)
CASE3 ๋ฌธ์ ๋ณด๊ธฐ
CASE3 : Cross Join (์ ๋ถ๋ค ์ฐ๊ฒฐ) ํ๊ณ ์กฐ๊ฑด์ ๋ง๋ ๊ฒ๋ง ๊ณ ๋ฅด๊ธฐ (๋ณต์กํจ)
Cross Join ๊ฒฐ๊ณผ
-------------------------
(1,A) - (1,A) - (X)
(1,A) - (2,NULL - (X)
(1,A) - (3,B) - (O)
(2,NULL) - (1,A) - (X)
(2,NULL) - (2,NULL) - (X)
(2,NULL) - (3,B) - (X)
(3,B) - (1,A) - (O)
(3,B) - (2,NULL) - (X)
(3,B) - (3,B) - (X)
(4,C) - (1,A) - (O)
(4,C) - (2,NULL) - (X)
(4,C) - (3,B) - (O)
SQL ์ฟผ๋ฆฌ๋ฌธ์ ์์ฑํ๋ฉด DB๋ ๊ทธ๊ฒ์ ์ํํ์ฌ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋ค.
๊ทธ ๊ณผ์ ์ ์ตํฐ๋ง์ด์ ๊ฐ SQL์ ํด์ํ๊ณ ์คํ๊ณํ์ ์ธ์ฐ๊ฒ ๋๋๋ฐ ์ฌ๊ธฐ์ ๋งํ๋ ์คํ๊ณํ์ด ๋ฐ๋ก ์์ ์ธ๊ธ๋ ๋ฐฉ๋ฒ๋ค์ด๋ค.
์ฌ๋ฌ๊ฐ์ง ๋ฐฉ๋ฒ๋ค ์ค์ ๋น์ฉ์ด ์ ๊ฒ๋๋ ๋ฐฉ๋ฒ์ ํํ๊ฒ ๋๋๋ฐ, ๋ณต์กํด๋ณด์ด๋ CASE3๋ฅผ ์ ์ธํ๊ณ
CASE1, CASE2 ์ค์ ์ ํํ ์ด๋ธ์ ์ ํด์ผ ํ๋๋ฐ ๋ณดํต ๊ฑด์๊ฐ ์ ์ ํ ์ด๋ธ์ด ์ ํํ ์ด๋ธ์ด ๋๋ ๊ฒ์ด ์ ๋ฆฌํ๋ค.(B ํ ์ด๋ธ)
์ ๋ต : 3๋ฒ (12)
๋ฌธ์ ํด์ค ์ถ์ฒ : ๋ฐ์ดํฐ ์ ๋ฌธ๊ฐ ํฌ๋ผ ๋ง๋๋
'IT์๊ฒฉ์ฆ ๊ณต๋ถ > SQLD ์๊ฒฉ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[SQLD] ์ 45ํ ์ํ๊ฒฐ๊ณผ - ์ฌ์ ์ ์ํ์ธ (4) | 2022.06.17 |
---|---|
[SQLD] 45ํ ์ํ ํ๊ธฐ (Feat : ๊ฒฝ๊ธฐ๊ณ ์ธ๋) (3) | 2022.05.29 |
[SQL ์ ๋ฌธ๊ฐ] ๊ณผ๋ชฉII. ์ 3์ฅ ๊ด๋ฆฌ ๊ตฌ๋ฌธ - ์ฐ์ต๋ฌธ์ (์ด 7๋ฌธ์ ) (1) | 2022.04.22 |
[SQL ์ ๋ฌธ๊ฐ] ๊ณผ๋ชฉII. ์ 3์ฅ ๊ด๋ฆฌ ๊ตฌ๋ฌธ (0) | 2022.04.21 |
[SQL ์ ๋ฌธ๊ฐ] ๊ณผ๋ชฉII. ์ 2์ฅ SQL ํ์ฉ - ์ฐ์ต๋ฌธ์ (2) | 2022.04.15 |