Sub Query

SELECT ๋ฌธ๋ฒ•์•ˆ์— SELECT ์ด๋Ÿฐ๊ฑธ ๋˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์„œ๋ธŒ์ฟผ๋ฆฌ๋ผ๊ณ  ํ•˜๋Š”๋ฐ ์–ธ์ œ ์–ด๋–ป๊ฒŒ ์“ฐ๋Š”์ง€ ์•Œ์•„๋ด…์‹œ๋‹ค.

Q. cardํ…Œ์ด๋ธ”์—์„œ ์‚ฌ์šฉ๊ธˆ์•ก์˜ ํ‰๊ท ๋ณด๋‹ค ๋” ํฐ ์‚ฌ์šฉ๊ธˆ์•ก์„ ๊ฐ€์ง„ ์‚ฌ๋žŒ๋งŒ ์ถœ๋ ฅํ•˜๊ณ  ์‹ถ์œผ๋ฉด ์–ด๋–ป๊ฒŒํ• ๊นŒ์š”?

1. ์ปฌ๋Ÿผ์— ์žˆ๋Š” ๊ฐ’์„ ํ‰๊ท ๋‚ด๊ณ  ์‹ถ์œผ๋ฉด AVG() ์“ฐ๋ฉด ๋œ๋‹ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๊ฑธ ์จ์„œ ํ‰๊ท ์„ ๊ตฌํ•ฉ๋‹ˆ๋‹ค. ๋Œ€์ถฉ 245000์›์ด ๋‚˜์˜ต๋‹ˆ๋‹ค.

SELECT AVG(์‚ฌ์šฉ๊ธˆ์•ก) FROM card 

2. ๊ทธ ๋‹ค์Œ์— ํ‰๊ท  245000๋ณด๋‹ค ๋†’์€ ๊ฒƒ๋“ค๋งŒ ์ถœ๋ ฅํ•˜๋ผ๊ณ  ์กฐ๊ฑด๋ฌธ ์“ฐ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

์ด๊ฑธ ์ˆ˜๋™์œผ๋กœ 2๋ฒˆ ์ž…๋ ฅํ•˜๋Š”๊ฑด ๋„ˆ๋ฌด ๊ท€์ฐฎ์Šต๋‹ˆ๋‹ค

๊ทธ๋ž˜์„œ ํ•˜๋‚˜๋กœ ํ•ฉ์ณ๋ณด์•˜์Šต๋‹ˆ๋‹ค.

SELECT * 
  FROM card 
 WHERE ์‚ฌ์šฉ๊ธˆ์•ก > (SELECT AVG(์‚ฌ์šฉ๊ธˆ์•ก) FROM card)

SELECT ์ฟผ๋ฆฌ์•ˆ์— ๋‹ค๋ฅธ SELECT ์ฟผ๋ฆฌ๋ฅผ ์ž์œ ๋กญ๊ฒŒ ๋„ฃ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ €๋ ‡๊ฒŒ ๋‹ค๋ฅธ ์ฟผ๋ฆฌ ์•ˆ์— ๋“ค์–ด๊ฐ€๋Š” ์ฟผ๋ฆฌ๋ฅผ ์„œ๋ธŒ์ฟผ๋ฆฌ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿผ ์†Œ๊ด„ํ˜ธ์— ์žˆ๋Š” ์ฟผ๋ฆฌ๋จผ์ € ์‹คํ–‰ํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ๋ฑ‰๊ณ  ๋‹ค์Œ ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•ด์ค๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ์œ„ ์ฝ”๋“œ๋Š” ์†Œ๊ด„ํ˜ธ ์•ˆ์— ์žˆ๋Š” SELECT ์–ด์ฉŒ๊ตฌ๊ฐ€ ๋จผ์ € ์‹คํ–‰๋˜์–ด ํ‰๊ท ๊ฐ’ 245000 ์„ ๊ทธ ์ž๋ฆฌ์— ๋‚จ๊ฒจ์ค„๊ฑฐ๊ณ  ๊ทธ ๋‹ค์Œ์— ์‚ฌ์šฉ๊ธˆ์•ก > 245000 ์ธ ํ–‰๋งŒ ์ถœ๋ ฅํ•ด์ค๋‹ˆ๋‹ค.

(์ฐธ๊ณ )

- ๋ฌธ์ž๋‚˜ ์ˆซ์ž ๋“ค์–ด๊ฐˆ ๊ณณ์— ์„œ๋ธŒ์ฟผ๋ฆฌ๋ฅผ ๋Œ€์‹  ๋„ฃ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

- ๊ทธ๋ž˜์„œ 1๊ฐœ์˜ ๋ฌธ์ž๋‚˜ ์ˆซ์ž๋ฅผ ๋ฑ‰๋Š” SELECT๋ฌธ๋งŒ ์„œ๋ธŒ์ฟผ๋ฆฌ๋กœ ๋„ฃ์„ ์ˆ˜ ์žˆ์Œ

(์—ฌ๋Ÿฌ๊ฐœ์˜ ํ–‰์„ ๋ฑ‰๋Š” SELECT๋Š” ์„œ๋ธŒ์ฟผ๋ฆฌ ์—ญํ• ์„ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค)

- ์„œ๋ธŒ์ฟผ๋ฆฌ ๋„ฃ์„ ๋•Œ ( ) ์†Œ๊ด„ํ˜ธ ๊นŒ๋จน์œผ๋ฉด ์•ˆ๋ฉ๋‹ˆ๋‹ค.

SELECT ์‚ฌ์šฉ๊ธˆ์•ก / (SELECT AVG(์‚ฌ์šฉ๊ธˆ์•ก) FROM card) 
  FROM card 

์กฐ๊ฑด์ ˆ WHERE ์—์„œ๋ฟ๋งŒ์•„๋‹ˆ๋ผ SELECT ์•ˆ์—์„œ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

IN( ) ์•ˆ์— ์„œ๋ธŒ์ฟผ๋ฆฌ

์นด๋“œํšŒ์‚ฌ์—์„œ ์นด๋“œ๊ฐ’ ์ œ๋•Œ ์•ˆ๊ฐ’๋Š” ๋ธ”๋ž™๋ฆฌ์ŠคํŠธ๋ฅผ ๋งŒ๋“ค์–ด ๋ด…์‹œ๋‹ค.

ํ…Œ์ด๋ธ” blacklist ๋ฅผ ๋งŒ๋“ค๊ณ  ๊ทธ๊ณณ์— ์ด๋ฆ„ ์ปฌ๋Ÿผ VARCHAR(100)์œผ๋กœ ๋งŒ๋“ค์–ด๋ด…์‹œ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์•„๋ž˜์ฒ˜๋Ÿผ ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ์–ด์ค์‹œ๋‹ค.

Q. card ํ…Œ์ด๋ธ”์—์„œ ๋ธ”๋ž™๋ฆฌ์ŠคํŠธ ํšŒ์›๋“ค์˜ ์‚ฌ์šฉ๊ธˆ์•ก์„ ์ถœ๋ ฅํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ์ฝ”๋“œ๋ฅผ ์งœ์•ผํ• ๊นŒ์š”?

๐Ÿ‘hint WHERE IN ์กฐ๊ฑด๋ฌธ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ€๋Šฅํ• ๋“ฏ?

SELECT ์‚ฌ์šฉ๊ธˆ์•ก FROM card
WHERE ๊ณ ๊ฐ๋ช… IN ('Pristine', 'George', 'Amy')

SELECT ์‚ฌ์šฉ๊ธˆ์•ก FROM card 
WHERE ๊ณ ๊ฐ๋ช… IN (SELECT ์ด๋ฆ„ FROM blacklist) 

IN () ์•ˆ์— ๋ฌธ์ž๋‚˜ ์ˆซ์ž๊ฐ€ ์—ฌ๋Ÿฌ๊ฐœ ๋„ฃ์„ ์ˆ˜ ์žˆ๋Š”๋ฐ

๊ทธ ์ž๋ฆฌ์— ์„œ๋ธŒ์ฟผ๋ฆฌ๋ฅผ ๋„ฃ์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ์œ„ 2๊ฐœ ์ฝ”๋“œ๋Š” ๋˜‘๊ฐ™์€ ๊ฒฐ๊ณผ๊ฐ€ ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿผ ์„œ๋ธŒ์ฟผ๋ฆฌ๊ฐ€ ๋จผ์ € ์‹คํ–‰๋˜์–ด์„œ 'Pristine', 'George', 'Amy' ์ด๋Ÿฐ ๊ฐ’๋“ค์„ ๊ฐ€์ ธ์˜ค๊ณ 

WHERE ๊ณ ๊ฐ๋ช… IN ('Pristine', 'George', 'Amy') ์ด๊ฑธ ์—ฐ์‚ฐํ•ด์ฃผ๊ฒ ๊ตฐ์š”.

Q. ๋ฌธ์ž๋‚˜ ์ˆซ์ž๋ฅผ 1๊ฐœ๋งŒ ๋ฑ‰๋Š” SELECT๋ฌธ๋งŒ ์„œ๋ธŒ์ฟผ๋ฆฌ์—ญํ• ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด์„œ์š”???

- IN() ์•ˆ์—์„  ์˜ˆ์™ธ์ž„ ใ……ใ„ฑใ…‡

๊ฒฐ๋ก ์€ ์—ฌ๋Ÿฌ SELECT ๋ฌธ์žฅ์„ ์„œ๋ธŒ์ฟผ๋ฆฌ ํ˜•ํƒœ๋กœ ํ•˜๋‚˜๋กœ ํ•ฉ์น  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‹ฌ์ง€์–ด ์œ„์˜ ์˜ˆ์ œ ์ž˜ ๋ณด๋ฉด ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์„ SELECTํ•œ ๊ฒฐ๊ณผ๋„ ์„œ๋ธŒ์ฟผ๋ฆฌ๋กœ ๋„ฃ์„ ์ˆ˜ ์žˆ์Œ์„ ์•Œ ์ˆ˜ ์žˆ๋Š”๋ฐ

ํ…Œ์ด๋ธ”์„ 2๊ฐœ ์ด์ƒ ์‚ฌ์šฉํ•ด์„œ ๊ฒฐ๊ณผ๋ฅผ ๋ฝ‘์„ ๋• ๋Œ€๋ถ€๋ถ„ ์„œ๋ธŒ์ฟผ๋ฆฌ๋ง๊ณ  ๋‚˜์ค‘์— ๋ฐฐ์šธ JOIN ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ž˜๋„ ๋Œ€๋ถ€๋ถ„ ๋™์ผํ•œ ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๊ณ  ์ฒ˜๋ฆฌ์†๋„๋„ ๋” ๋น ๋ฅด๊ณ  ๋ฌธ๋ฒ•๋„ ์•ฝ๊ฐ„ ๋” ์ดํ•ด๊ฐ€ ์‰ฝ์Šต๋‹ˆ๋‹ค.

Q1. "๊ณ ๊ฐ๋“ฑ๊ธ‰์ด ํŒจ๋ฐ€๋ฆฌ์ธ ์‚ฌ๋žŒ๋“ค์˜ ํ‰๊ท  ์—ฐ์ฒดํšŸ์ˆ˜"๋ณด๋‹ค ์—ฐ์ฒดํšŸ์ˆ˜๊ฐ€ ๋†’์€ ์‚ฌ๋žŒ์€ ๋ช‡๋ช…์ผ๊นŒ์š”?

Q2. ๊ฐœ์ธ์˜ ์‚ฌ์šฉ๊ธˆ์•ก์ด ํ‰๊ท ์‚ฌ์šฉ๊ธˆ์•ก๊ณผ ์–ผ๋งˆ๋‚˜ ์ฐจ์ด๊ฐ€ ๋‚˜๋Š”์ง€ ์ถœ๋ ฅํ•ด๋ด…์‹œ๋‹ค.

Last updated