๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
IT์ž๊ฒฉ์ฆ ๊ณต๋ถ€/SQLD ์ž๊ฒฉ์ฆ

[SQLD] ๋ถ€์ •๋น„๊ต์—ฐ์‚ฐ์ž <> (๋ฌธ์ œํ’€์ด/ํ•ด์„ค)

by yunamom 2022. 5. 16.
๋ฐ˜์‘ํ˜•

๋ฌธ์ œ. ๋‹ค์Œ 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)

 

 

๋ฌธ์ œํ•ด์„ค ์ถœ์ฒ˜ : ๋ฐ์ดํ„ฐ ์ „๋ฌธ๊ฐ€ ํฌ๋Ÿผ ๋งˆ๋†๋‹˜

300x250

์ฝ”๋“œ