๐Ÿ“’ SQL - ๋ฌธ์ œํ’€์ด Day1

Kimdongkiยท2024๋…„ 6์›” 23์ผ

DB

๋ชฉ๋ก ๋ณด๊ธฐ
31/33

๐Ÿ“™ ๋ฐ์ดํ„ฐ ๊ทธ๋ฃน์œผ๋กœ ๋ฌถ๊ธฐ

  • Table์—์„œ data1๊ณผ data2์˜ ํ‰๊ท ๊ณผ ํ‘œ์ค€ํŽธ์ฐจ๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค.
    -> ๊ฒฐ๊ณผ๊ฐ’์€ 3์ž๋ฆฌ์—์„œ ๋ฐ˜์˜ฌ๋ฆผ.
SELECT variance 
	query,
    ROUND(AVG(data1) as data1_avg,
    ROUND(VARIANCE(data1) as data1_var,
    ROUND(AVG(data2) as data2_avg,
    ROUND(VARIANCE(data2) as data2_var
FROM Table
GROUP BY query

๐Ÿ“™ ๋ณต์ˆ˜ ๊ตญ์  ๋ฉ”๋‹ฌ ์ˆ˜์ƒํ•œ ์„ ์ˆ˜ ์ฐพ๊ธฐ

  • 2000๋…„๋„ ์ด์ƒ์˜ ์ˆ˜์ƒ๊ธฐ๋ก

  • 2๊ฐœ ์ด์ƒ์˜ ๊ตญ์ ์œผ๋กœ ์ˆ˜์ƒํ•œ ์„ ์ˆ˜

  • ์ฃผ์˜
    -> ์„ ์ˆ˜์˜ ์ด๋ฆ„์œผ๋กœ GROUP BY๋ฅผ ํ•˜๋ฉด ์ด๋ฆ„์ด ๊ฒน์น˜๋Š” ๊ฒฝ์šฐ๋ฅผ ๋ฌด์‹œํ•˜๋Š”๊ฒƒ์ž„
    -> GROUP BY๋Š” Unique key๋กœ ํ•ด์•ผํ•œ๋‹ค.

SELECT a.name
FROM athletes a
JOIN records r ON a.id = r.athlete_id
JOIN games g ON g.id = r.game_id
WHERE g.year >= 2000 and medal is not NULL
GROUP BY a.id
HAVING COUNT(DISTINCT team_id) >= 2
ORDER BY a.name

0๊ฐœ์˜ ๋Œ“๊ธ€