๐ ๋ณธ ํฌ์คํ ์์ ์ฌ์ฉ๋๋ ํ ์ด๋ธ์ ์๋ฃ์ ์ถ์ฒ๋ SQL Zoo์์ ๋ฐํ๋๋ค. ๋ ๋ค์ํ SQL ๋ฌธ์ ๋ฅผ ํ์ด๋ณด์๋ ค๋ฉด SQL Zoo ์ฌ์ดํธ๋ฅผ ๋ฐฉ๋ฌธํด๋ณด์ธ์!
์ด๋ฒ ํฌ์คํ ์์๋ ORDER BY ์ ์ IN ๋ฌธ๋ฒ์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ผ๋ก SQL ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด๋ ค๊ณ ํ๋ค. ํด๋น ๋ฌธ์ ๋ ์ฌ๊ธฐ์ 14๋ฒ ๋ฌธ์ ์ด๋ค.
์ฐ์ ๋ฌธ์ ๋ฅผ ํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ํ ์ด๋ธ๊ณผ ๋ฌธ์ ๋ฅผ ์ดํด๋ณด์.
Show the 1984 winners and subject ordered by subject and winner name; but list Chemistry and Physics last.
(1984๋ ์ ์์ํ ์์์๋ค์ ์ถ๋ ฅํ๋๋ฐ ์ฐ์ subject ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์(์ํ๋ฒณ ์์)๋ก ์ ๋ ฌํ ํ winner ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํด๋ผ. ์ด ๋ subject์์ 'Chemistry' ์ 'Physics' ๊ฐ์ด ๋ค์ด์๋ ๋ฐ์ดํฐ๋ ๊ฐ์ฅ ๋ค๋ก ์ ๋ ฌ์์ผ๋ผ.)
์, ์ด์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ํ๋์ฉ ์กฐ๊ฑด์ ๋ง์ถฐ๋ณด์.
- ์ฐ์ , 1984๋ ์ ์์ํ ์์์๋ค์ WHERE ์กฐ๊ฑด์ผ๋ก ํํฐ๋ง
- subject๊ฐ 'Chemistry', 'Physics' ์ธ ๋ฐ์ดํฐ๋ค์ ๊ฐ์ฅ ๋ค๋ก ์ ๋ ฌ
- 2๋ฒ ์ ๋ ฌ ๊ธฐ์ค ์ค์ ์ดํ, subject โก๏ธ winner ์์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌ
์ด ๋, 2๋ฒ์งธ ์ ๋ ฌ ์กฐ๊ฑด์ ์คํํ๊ธฐ ์ํด ORDER BY์ IN์ ์ฌ์ฉํ์ฌ ์ฝ๊ฒ ๊ตฌํํ ์ ์๋ค.
ORDER BY subject IN ('Chemisty', 'Physics') [ASC | DESC]
์ ๊ตฌ๋ฌธ์ ์ง๊ด์ ์ผ๋ก ํด์ํด๋ณด์๋ฉด "subject ๊ฐ ์ค์ 'Chemistry' ๋๋ 'Physics' ๊ฐ ๋ค์ด์๋ ๋ฐ์ดํฐ๋ค์ ASC(์ค๋ฆ์ฐจ์) ๋๋ DESC(๋ด๋ฆผ์ฐจ์)์ผ๋ก ์ ๋ ฌํด๋ผ!" ์ฌ๊ธฐ์ ASC ๋ผ๊ณ ์ค์ ํ๊ฒ ๋๋ฉด ํ ์ด๋ธ์ ๊ฐ์ฅ ์๋จ์, DESC ๋ผ๊ณ ์ค์ ํ๋ฉด ํ ์ด๋ธ์ ๊ฐ์ฅ ํ๋จ์ ์ถ๋ ฅ๋๋ ๊ฒ์ ๋ณผ ์ ์๋ค. ์ด์ ํด๋น ๋ฌธ์ ์ ์ ๋ต์ธ ์ ์ฒด SQL ๊ตฌ๋ฌธ์ ์์ฑํ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.(์ฐธ๊ณ ๋ก ASC/DESC ์ค ์๋ฌด๊ฒ๋ ์ ๋ ฅํด์ฃผ์ง ์์ผ๋ฉด ์ ๋ ฌ ๋ํดํธ ๊ฐ์ผ๋ก ASC ๊ฐ ์๋์ค์ ๋๋ค.)
SELECT winner, subject
FROM nobel
WHERE yr = 1984
ORDER BY subject IN ('Chemistry', 'Physics'), subject, winner
'SQL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[SQL] MySQL - Window Function์ผ๋ก ๋ฌธ์ ํ๊ธฐ(Leetcode - 180, 184, 185๋ฒ) (0) | 2021.01.30 |
---|---|
[SQL] MySQL - ๋๋ง์ Function ๋ง๋ค๊ธฐ(Leetcode - 177๋ฒ) (0) | 2021.01.29 |
[SQL] - Delete, Update๋ฌธ ์ฌ์ฉํ๊ธฐ(Leetcode - 196, 627๋ฒ) (0) | 2021.01.27 |
[SQL] MySQL - SET ๊ณผ ์๋ธ์ฟผ๋ฆฌ ์ฌ์ฉํ๊ธฐ (4) | 2021.01.26 |
[SQL] MySQL - ALL ์ฌ์ฉ๋ฒ (0) | 2021.01.25 |