์ฐ์ ์ ์๊ฑฐํธ๊ฐ ๋ด๊ธด ์ฅ๋ฐ๊ตฌ๋
#์ต์ข
SELECT CART_ID
FROM CART_PRODUCTS
WHERE NAME IN ('Milk', 'Yogurt')
GROUP BY 1
HAVING COUNT(DISTINCT NAME) > 1
ORDER BY 1
๊ฐ๋จํด ๋ณด์ด๋ ๋ฌธ์ ์ง๋ง ์๋นํ ํท๊ฐ๋ ธ๋ค.
#์ ๊ทผ ๋ฐฉ์
Milk ํน์ Yogurt๊ฐ ๋ด๊ธด ๋ฐ์ดํฐ๋ง ํํฐ๋งํ ํ, COUNT(cart_id)๊ฐ 2 ์ด์์ธ ๊ฒ๋ง ๋ฝ์๋ด๋ฉด ๋์ง ์์๊น?
#1๋จ๊ณ
#1๋จ๊ณ
SELECT CART_ID, NAME
FROM CART_PRODUCTS
WHERE NAME IN ('Milk', 'Yogurt')
์ต์ข ์ฝ๋์๋ ๋นผ์ผ ํ์ง๋ง, ์๋ฌด๋๋ NAME ์ ์กฐ๊ฑด์ด ๊ฑธ๋ฆฌ๋ค ๋ณด๋ ํํฐ๋งํ ํ์ ๋ฐ์ดํฐ๋ฅผ ์ข ์ดํด๋ณด๊ธฐ ์ํด ์ฐ์ NAME๋ ๊ฐ์ด ์ถ๋ ฅํ๋ค. ์คํ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ฉด, ์ ๊ทผ ๋ฐฉ์์ ํ์ ์ด ์๋ค๋ ๊ฑธ ์ ์ ์๋ค. 830๋ฒ๊ณผ ๊ฐ์ด Yogurt๋ง 3๊ฐ ์ฐ ์ฌ๋๋ ์๊ธฐ ๋๋ฌธ์ด๋ค. ๋ฌธ์ ์๋๋ ์ฐ์ ์ ์๊ฑฐํธ๋ฅผ ๋ชจ๋ ์ฐ ์ฌ๋์ ์๊ตฌํ๋ค.
#2๋จ๊ณ
#2๋จ๊ณ
SELECT CART_ID, NAME
FROM CART_PRODUCTS
WHERE NAME IN ('Milk', 'Yogurt')
GROUP BY 1
HAVING COUNT(DISTINCT NAME) > 1
๋ฐ๋ผ์ 6ํ์ HAVING์ด ํ์ํ๋ค. ํ์ด์ ํด์ํ์๋ฉด, ๊ทธ๋ฃนํํ ํ name์ ๊ณ ์ ํ ๊ฐ์ด 1๊ฐ ์ด๊ณผ์ธ ๊ฒฝ์ฐ๋ง ์ผ๋ค๋ ์๋ฏธ์ด๋ค. ์ฆ name ์ค๋ณต๊ฐ์ ์ ๊ฑฐํ์ ๋, yogurt์ milk ๋ ๋ค ๋จ์ ๊ฒฝ์ฐ๋ง ์ผ๋ค.
#์ต์ข ์ฝ๋
#์ต์ข
SELECT CART_ID
FROM CART_PRODUCTS
WHERE NAME IN ('Milk', 'Yogurt')
GROUP BY 1
HAVING COUNT(DISTINCT NAME) > 1
ORDER BY 1
๋ฌธ์ ์์ ์๊ตฌํ๋ ์ ๋ ฌ์ ๋ง์ถ๊ณ , SELECT๋ฌธ์์ name ์ปฌ๋ผ์ ์ง์ด๋ค. ์์ฑ. ์ฐธ๊ณ ๋ก having ์ ์์ >1๊ฐ ์๋ =2๋ก ํด๋ ์๊ด์ ์๋ค. ์๋ฐํ๊ฒ ๋ฐ์ง๋ฉด ํ์๊ฐ ๋ ๋ง์ ๊ฒ ๊ฐ๋ค.
#๋๋์
๋ฌธ์ ๋ ๋ฒจ์ด ์ค๋ฅด๋ ๋จ์ํ ์ธ ์ค ์๋ ํจ์๊ฐ ๋ง๋ค๊ณ ํ ์ ์๋ ๋ฌธ์ ๊ฐ ์๋๊ฒ ๋๋ค. ์ด ์๊ฑฐํธ&์ฐ์ ์ฅ๋ฐ๊ตฌ๋ ๋ฌธ์ ์ฒ๋ผ ๋จ๊ณ๋ณ๋ก ์คํํ์ฌ ๋ฐ์ดํฐ์ ํน์ด์ฌํญ์ด๋ ์ฑ์ง์ ํ์ธํ ํ ๊ทธ ๋ค์์ ์ด๋ป๊ฒ ํ ์ง ์๊ฐํด์ผ ํ๋ค.
'๐งฑ SQL > ๐ป ์ฟผ๋ฆฌ ํ ์คํธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
solvesql ๋ฐฐ์ก ์์ ์ผ ์์ธก ์ฑ๊ณต๊ณผ ์คํจ - ๋ฌธ์ ํ์ด (0) | 2024.05.22 |
---|---|
240102 TUE ๋์ฌ ํ์๊ฐ ๋ง์ ์๋์ฐจ๋ค์ ์๋ณ ๋์ฌ ํ์ ๊ตฌํ๊ธฐ (0) | 2024.01.02 |
231226 TUE ์ฝ๋์นดํ ๋ฆฌ๋ทฐ (1) | 2023.12.26 |
231224 SUN ์ง๊ณํจ์ (0) | 2023.12.24 |