19 Fri
๋ฐ์ดํฐ ๋ถ์์ ์ํ ์ค๊ธ SQL
OT
๊ธฐ์ด SQL๊ณผ ๋์ผ
๋ณด๊ณ ์ถ์ ๋ฐ์ดํฐ ์์ฝํ๊ธฐ
COUNT, SUM, AVG, MIN/MAX
COUNT
ํด๋น ์ปฌ๋ผ์ ๊ฐ์๋ฅผ ์ผ๋ค.
๋ง์ฝ NULL ๊ฐ์ด ์๋ค๋ฉด ์ธ์ง ์๋๋ค
EX) Num = [1, 2, 3, 4, NULL] =>
COUNT(Num)
=> 4
DISTINCT๋ฅผ ์ฌ์ฉํด ์ ์๋ ์๋ค.
EX)
SELECT COUNT(DISTINCT Num)
=> 3
SUM
๋ฐ์ดํฐ๋ค์ ์ดํฉ์ ๊ตฌํ๋ค.
AVG
๋ฐ์ดํฐ๋ค์ ํ๊ท ์ ๊ตฌํ๋ค
์ด ๋ NULL์ ๊ฐ์๋ ์ธ์ง ์๊ธฐ ๋๋ฌธ์ NULL์ ์ ์ธํ ๊ฐ์๋ก ๋๋ ๊ฐ์ ์ป๊ฒ๋๋ค.
๋ฐ๋ผ์ AVG() ํจ์๋ฅผ ์ธ์ง SUM()/COUNT() ํจ์๋ฅผ ์ธ์ง๋ฅผ ์ ๊ณ ๋ คํด์ผ ํ๋ค
MAX
๋ฐ์ดํฐ ์ค ์ต๋๊ฐ์ ๊ตฌํ๋ค
MIN
๋ฐ์ดํฐ ์ค ์ต์๊ฐ์ ๊ตฌํ๋ค
GROUP BY & HAVING
GROUP BY
: ํน์ ์ปฌ๋ผ์ ๊ธฐ์ค์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณผ ๊ฒฝ์ฐ ์ฌ์ฉํ๋คํน์ SUM์ ํ ๊ฒฝ์ฐ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ฐพ์ง๋ ์๋๋ค
์ผ๋ถ ๋ฐ์ดํฐ๋ง์ ์กฐ์ํด์ ๋ด์ผํ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค
GROUP BY
๋ค์ ์ค๋ ์ปฌ๋ผ๋ช ์SELECT
๋ค์๋ ๊ฐ์ด ์์ผ ์์๋ณด๊ธฐ๊ฐ ์ฝ๋คSELECT
๋ค์ ์ค๋ ์์๋๋ก Index๋ฅผGROUP BY
์ ์ ์ฉํ ์ ์๋คEX)
GROUP BY 1, 2
=GROUP BY SupplierID, Categoryid
๊ทธ๋ฌ๋ ๊ถ์ฅํ๋ ๋ฌธ๋ฒ์ ์๋๋ค. ์ปฌ๋ผ๋ช ์ ์ ํํ๊ฒ ๋ฐํ๋ ๊ฒ์ด ์ข์
--
: line comment/* */
: block commentHAVING
:GROUP BY
์ ๋ํ ์กฐ๊ฑด์ ์ํด ์ฌ์ฉํ๋คWHERE
๋ฅผ ์ฌ์ฉํ์ง ์๋ ์ด์WHERE
๋GROUP BY
์ด์ ์ ๋จผ์ ์ ์ฉ๋๊ธฐ ๋๋ฌธ์ ์ฌ๋ฐ๋ฅธ ๋ฐ์ดํฐ๊ฐ ๋ถ๋ฌ์์ง์ง ์๋๋ค.GROUP BY
์ดํ์ ์กฐ๊ฑด์ด ์ ์ฉ๋์ด์ผ ํ๋ฉฐWHERE
๋GROUP BY
์์ ํญ์ ์์ผ ํ๋ฏ๋ก ๊ทธ ๋์HAVING
์ ์ฌ์ฉํ๋ค
AS
: ํน์ ๋ฐ์ดํฐ์ ์ด๋ฆ์ ์ฌ์ฉ์๊ฐ ์ ์ํ ๋ ์ฌ์ฉ
์กฐ๊ฑด๋ฌธ
CASE
CASE ~ END
: ์กฐ๊ฑด์ ํตํด ๋ฐ์ดํฐ ์ปฌ๋ผ์ ์ฌ์์ฑ ํ ๋ ์ฌ์ฉํ๋คWHEN
: ์กฐ๊ฑด์ ๋ช ์ํ๋ค. ๋ ผ๋ฆฌ ์ฐ์ฐ์AND
๋OR
๋ฅผ ์ฌ์ฉํ ์ ์๋คTHEN
: ์กฐ๊ฑด์ ๋ง์กฑํ๋ฉด ๋ฐ์ดํฐ๋ฅผ ์ ์ํ๋คELSE
: ๋ชจ๋ ์กฐ๊ฑด์ ๋ง์กฑํ์ง ์๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ํ๋ค
ํ ์ด๋ธ ํผ๋ด
๋ฐ์ดํฐ๋ฅผ ์์ฝํ๋ ํ๋ฅผ ์์ฑํ๋ ์ผ
Last updated
Was this helpful?