๐SQL ๋ฌธ๋ฒ - ORDER BY ์ ๋ก ์ ๋ ฌํ๊ธฐ
SQL์์ ์ ๋ ฌ์ ORDER BY
์ ์ ์ฌ์ฉํด์ ์ฒ๋ฆฌํฉ๋๋ค.
โ ORDER BY ์ ์ด๋?
ORDER BY
๋ SELECT ๊ฒฐ๊ณผ๋ฅผ ํน์ ์ปฌ๋ผ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌํ ๋ ์ฌ์ฉํ๋ ์ ์
๋๋ค.
๊ธฐ๋ณธ๊ฐ์ ์ค๋ฆ์ฐจ์(ASC)์ด๋ฉฐ, ๋ด๋ฆผ์ฐจ์์ DESC
๋ฅผ ์ฌ์ฉํฉ๋๋ค.
SELECT ์ปฌ๋ผ๋ช
FROM ํ
์ด๋ธ๋ช
ORDER BY ์ ๋ ฌ๊ธฐ์ค [ASC | DESC];
๊ธฐ๋ณธ ์ ๋ ฌ ์์
-- ๊ฐ๊ฒฉ ๊ธฐ์ค ์ค๋ฆ์ฐจ์ ์ ๋ ฌ
SELECT bookname, price
FROM Book
ORDER BY price;
-- ๊ฐ๊ฒฉ ๊ธฐ์ค ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ
SELECT bookname, price
FROM Book
ORDER BY price DESC;
๐งพ ์ฌ๋ฌ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌํ๊ธฐ
ORDER BY๋ ๋ ๊ฐ ์ด์์ ์ปฌ๋ผ์ผ๋ก๋ ์ ๋ ฌํ ์ ์์ด์.
์ฒซ ๋ฒ์งธ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌํ๊ณ , ๊ฐ์ด ๊ฐ์ผ๋ฉด ๋ ๋ฒ์งธ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌํฉ๋๋ค.
-- ์ถํ์ฌ ์ด๋ฆ ์ค๋ฆ์ฐจ์, ๊ฐ๊ฒฉ ๋ด๋ฆผ์ฐจ์
SELECT bookname, publisher, price
FROM Book
ORDER BY publisher ASC, price DESC;
๐ข SELECT ์ ์ปฌ๋ผ ๋ฒํธ๋ก ์ ๋ ฌ
์ปฌ๋ผ ์ด๋ฆ ๋์ SELECT ์ ์์์ ์ด ๋ฒํธ๋ฅผ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌํ ์๋ ์์ต๋๋ค.
-- ๋ ๋ฒ์งธ ์ปฌ๋ผ(price) ๊ธฐ์ค ๋ด๋ฆผ์ฐจ์
SELECT bookname, price
FROM Book
ORDER BY 2 DESC;
๐ ํ์ง๋ง ์ค๋ฌด์์๋ ๊ฐ๋ ์ฑ๊ณผ ์ ์ง ๋ณด์์ฑ์ ์ํด ์ปฌ๋ผ ์ด๋ฆ ์ฌ์ฉ์ ๊ถ์ฅํด์
๐ค NULL ๊ฐ ์ ๋ ฌ ์ฒ๋ฆฌ
DBMS์ ๋ฐ๋ผ ๋ค๋ฅด์ง๋ง ์ผ๋ฐ์ ์ผ๋ก:
์ ๋ ฌ ๋ฐฉํฅ | ๊ธฐ๋ณธ ์ ๋ ฌ | ์์น์ค๋ช |
ASC | NULL์ด ๋งจ ์ | ์ค๋ฆ์ฐจ์ ์ NULL ๋จผ์ ์ ๋ ฌ๋จ |
DESC | NULL์ด ๋งจ ๋ค | ๋ด๋ฆผ์ฐจ์ ์ NULL ๋ง์ง๋ง ์ ๋ ฌ๋จ |
ํน์ ํ ์์น๋ก NULL์ ์ ๋ ฌํ๋ ค๋ฉด IS NULL ์กฐ๊ฑด์ ํ์ฉํด์.
-- NULL ๊ฐ์ ๋งจ ๋ค๋ก ๋ณด๋ด๋ ์ ๋ ฌ
SELECT * FROM Book
ORDER BY discount IS NULL, price;
๐ฆ ์ค์ ์์
-- ๊ฐ๊ฒฉ ๋์ ๋์๋ถํฐ ๋์๋ช
์ค๋ฆ์ฐจ์
SELECT bookname, price
FROM Book
ORDER BY price DESC, bookname ASC;
-- ์ถํ์ฌ๋ณ ํ๊ท ๊ฐ๊ฒฉ์ ๋์ ์์ผ๋ก ์ ๋ ฌ
SELECT publisher, AVG(price) AS avg_price
FROM Book
GROUP BY publisher
ORDER BY avg_price DESC;
๐ ๋ง๋ฌด๋ฆฌ
์ค๋ช | |
๊ธฐ๋ณธ ์ ๋ ฌ |
|
๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ |
|
๋ค์ค ์ ๋ ฌ | ์ฌ๋ฌ ์ปฌ๋ผ ๊ธฐ์ค์ผ๋ก ์์ฐจ ์ ๋ ฌ ๊ฐ๋ฅ |
์ปฌ๋ผ ๋ฒํธ ์ ๋ ฌ |
|
NULL ์ฒ๋ฆฌ | ASC: ์์ชฝ ์ ๋ ฌ / DESC: ๋ค์ชฝ ์ ๋ ฌ |
์กฐํฉ ํ |
|
๐ ํ์ต ํ
โข ์ ๋ ฌ ๊ธฐ์ค์ด ๋ง์์๋ก ์ฐ์ ์์๋ฅผ ๋ช ํํ ์ ํ์ธ์.
โข ์ปฌ๋ผ๋ช ๋์ ์ซ์ ์ฌ์ฉ์ ํผํ๋ ๊ฒ ์ข์์.
โข GROUP BY์ ํจ๊ป ์ฌ์ฉํ ๋๋ ์ง๊ณ ๊ฒฐ๊ณผ ์ ๋ ฌ์ ์ ์ฉํฉ๋๋ค.