๐Ÿฌ MySQL/๋ฌธ์ œํ’€์ด

[MySQL] SQL ์ฝ”๋”ฉํ…Œ์ŠคํŠธ Day13

xod22 2022. 2. 26. 23:19
728x90

์ด ๋ฌธ์ œ๋Š” 2021Dev-Matching:์›น ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž(์ƒ๋ฐ˜๊ธฐ) ์—์„œ ๋‚˜์˜จ ๋ฌธ์ œ๋ผ๊ณ  ํ•œ๋‹ค.

https://programmers.co.kr/learn/courses/30/lessons/77487

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ํ—ค๋น„ ์œ ์ €๊ฐ€ ์†Œ์œ ํ•œ ์žฅ์†Œ

PLACES ํ…Œ์ด๋ธ”์€ ๊ณต๊ฐ„ ์ž„๋Œ€ ์„œ๋น„์Šค์— ๋“ฑ๋ก๋œ ๊ณต๊ฐ„์˜ ์ •๋ณด๋ฅผ ๋‹ด์€ ํ…Œ์ด๋ธ”์ž…๋‹ˆ๋‹ค. PLACES ํ…Œ์ด๋ธ”์˜ ๊ตฌ์กฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์œผ๋ฉฐ ID, NAME, HOST_ID๋Š” ๊ฐ๊ฐ ๊ณต๊ฐ„์˜ ์•„์ด๋””, ์ด๋ฆ„, ๊ณต๊ฐ„์„ ์†Œ์œ ํ•œ ์œ ์ €์˜ ์•„์ด๋””๋ฅผ

programmers.co.kr

๋ฌธ์ œ(ํ—ค๋น„ ์œ ์ €๊ฐ€ ์†Œ์œ ํ•œ ์žฅ์†Œ) : ์„œ๋ธŒ์ฟผ๋ฆฌ

 

PLACES ํ…Œ์ด๋ธ”์€ ๊ณต๊ฐ„ ์ž„๋Œ€ ์„œ๋น„์Šค์— ๋“ฑ๋ก๋œ ๊ณต๊ฐ„์˜ ์ •๋ณด๋ฅผ ๋‹ด์€ ํ…Œ์ด๋ธ”์ž…๋‹ˆ๋‹ค. PLACES ํ…Œ์ด๋ธ”์˜ ๊ตฌ์กฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์œผ๋ฉฐ ID, NAME, HOST_ID๋Š” ๊ฐ๊ฐ ๊ณต๊ฐ„์˜ ์•„์ด๋””, ์ด๋ฆ„, ๊ณต๊ฐ„์„ ์†Œ์œ ํ•œ ์œ ์ €์˜ ์•„์ด๋””๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ID๋Š” ๊ธฐ๋ณธํ‚ค์ž…๋‹ˆ๋‹ค.

 

NAME TYPE
ID INT
NAME VARCHAR
HOST_ID INT

๋ฌธ์ œ

 

์ด ์„œ๋น„์Šค์—์„œ๋Š” ๊ณต๊ฐ„์„ ๋‘˜ ์ด์ƒ ๋“ฑ๋กํ•œ ์‚ฌ๋žŒ์„ "ํ—ค๋น„ ์œ ์ €"๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค. ํ—ค๋น„ ์œ ์ €๊ฐ€ ๋“ฑ๋กํ•œ ๊ณต๊ฐ„์˜ ์ •๋ณด๋ฅผ ์•„์ด๋”” ์ˆœ์œผ๋กœ ์กฐํšŒํ•˜๋Š” SQL๋ฌธ์„ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.

 


ํ’€์ด

 

๊ณต๊ฐ„์„ ๋‘˜ ์ด์ƒ ๋“ฑ๋กํ•œ "ํ—ค๋น„ ์œ ์ €" ์˜ ๊ณต๊ฐ„์ •๋ณด๋ฅผ ID ์ˆœ์œผ๋กœ ์กฐํšŒํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค.

SELECT *
FROM PLACES
WHERE HOST_ID IN (SELECT HOST_ID FROM PLACES GROUP BY HOST_ID HAVING COUNT(*)>=2)
ORDER BY ID;

 

1. PLACE์—์„œ ๋ชจ๋“  ์ •๋ณด๋ฅผ SELECT ํ•˜๋˜, ์„œ๋ธŒ์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์กฐ๊ฑด์— ๋งž๋Š” HOST_ID ์ •๋ณด๋งŒ ๊ฐ€์ ธ์˜จ๋‹ค.

2. ์„œ๋ธŒ์ฟผ๋ฆฌ๋Š” HOST_ID๋กœ GROUP BY ํ•ด์„œ COUNTํ•œ ๊ฐ’์ด 1์ด์ƒ์ผ ๊ฒฝ์šฐ์˜ HOST_ID๋ฅผ SELECT ํ–ˆ๋‹ค.

3. ID ์ˆœ์œผ๋กœ ์กฐํšŒ

728x90
๋Œ“๊ธ€์ˆ˜0