header-img
Info :
๋ฐ€๋„
denseยน
์žฅ๋ž˜ํฌ๋ง : ๋‹จ์œ„ ๋ถ€ํ”ผ ๋‹น ์งˆ๋Ÿ‰์ด ๋ณด๋‹ค ๋นฝ๋นฝํ•œ ์‚ฌ๋žŒ ๋˜๊ธฐ

 

 

 

<๋ฌธ์ œ>

<์›๋ณธ ๋ฌธ์ œ: HackerRank The Report>

 

์‹œํ—˜์ด ๋๋‚ฌ๋‹ค. ํ•˜์ง€๋งŒ ๋ถˆํ–‰ํžˆ๋„ ๋‹น์‹ ์€ ํ•™๊ต ์„ ์ƒ๋‹˜์ด๋‹ค. ์•„์ด๋“ค์ด ๊ฐ€๋ฒผ์šด ๋งˆ์Œ์œผ๋กœ ํ•˜๊ตํ•˜๋Š” ๊ฒƒ๊ณผ ๋ณ„๊ฐœ๋กœ ๋‹น์‹ ์€ ์ฑ„์ ๋œ ์ ์ˆ˜ ๊ธฐ์ค€์œผ๋กœ ์•„์ด๋“ค์˜ ๋“ฑ๊ธ‰์„ ๋งค๊ฒจ์•ผ ํ•  ์ค‘์š”ํ•œ ์ฑ…๋ฌด๋ฅผ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•œ๋‹ค. ๋‹น์‹  ์•ž์—๋Š” Students ํ…Œ์ด๋ธ”๊ณผ Grades ํ…Œ์ด๋ธ”์ด ๋†“์—ฌ ์žˆ๋‹ค. ํ•˜๋‚˜๋Š” ํ•™์ƒ์˜ ์ด๋ฆ„๊ณผ ์ ์ˆ˜๊ฐ€ ๋“ค์–ด ์žˆ๋Š” ํ…Œ์ด๋ธ”์ด๊ณ  ๋‚˜๋จธ์ง€ ํ•˜๋‚˜๋Š” ์ ์ˆ˜๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•™์ƒ์„ ๊ทธ๋ฃน ๋‚˜๋ˆ„๋Š” ๋“ฑ๊ธ‰ ํ…Œ์ด๋ธ”์ด๋‹ค. ๋‘ ํ…Œ์ด๋ธ”์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฐ’์„ ๊ฐ€์ง„๋‹ค. ๋น„๊ต์  ๋œ ์‚ฝ์งˆํ•˜๊ณ  ์•„์ด๋“ค์˜ ๋“ฑ๊ธ‰์„ ๋งค๊ธธ ์ฟผ๋ฆฌ๋ฅผ ์งค ๋ฐฉ๋ฒ•์€ ์—†์„๊นŒ.

 

 

Students ํ…Œ์ด๋ธ”.

 

Grades ํ…Œ์ด๋ธ”.

 

 

 

<ํ’€์ด>

 

๋ฌผ๋ก  ์ €๋ฒˆ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ CASE WHEN์œผ๋กœ ์ผ์ผ์ด ์ง€์ •ํ•ด์ฃผ๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ๊ฒ ์ง€๋งŒ, MIN ๊ฐ’๊ณผ MAX ๊ฐ’์ด ์žˆ๋Š” ํ…Œ์ด๋ธ”์ด ์ด๋ ‡๊ฒŒ ์˜ˆ์˜๊ฒŒ ์žˆ๋‹ค๋ฉด LEFT JOIN์œผ๋กœ ๋ฌถ๊ณ  BETWEEN๋งŒ ๊ฑธ์–ด ์ค˜๋„ ์ „์ฒด ๋“ฑ๊ธ‰์„ ๋ฝ‘์„ ์ˆ˜ ์žˆ๋‹ค. LEFT JOIN์€ INNER JOIN๊ณผ ๋‹ค๋ฅด๊ฒŒ ๋‘ ํ…Œ์ด๋ธ”์— ๋™์ผํ•œ ๊ฐ’์ด ์—†์–ด๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ, ์ผ๋‹จ ์˜†์— ๋ถ™์—ฌ ๋†“๊ณ  ๊ฐ™์€ ํ…Œ์ด๋ธ”์— ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ์—ฐ์‚ฐ์—๋งŒ ๋ฝ‘์•„ ์“ฐ๋Š” ๊ฒƒ์ด๋‹ค.

 

SELECT IF(Grade < 8, NULL, Name), g.Grade, s.Marks
FROM Students s
	LEFT JOIN Grades g ON s.Marks BETWEEN g.Min_Mark AND g.Max_Mark
ORDER BY Grade DESC, Name, Marks

 

 

Grades ํ…Œ์ด๋ธ”๋Œ€๋กœ ์ž˜ ๋ถ„๋ฆฌ๋ผ ๋‚˜์˜จ๋‹ค.

 

 

 

 

๋”๋ณด๊ธฐ
TOOLS/SQL