โ๏ธ Programmers MySQL ์ ๋ต๋ฅ 88~92% ์ ์ฒด ํ์ด
1๏ธโฃ ์ญ์ ์ ๋ ฌํ๊ธฐ (https://school.programmers.co.kr/learn/courses/30/lessons/59035)
SELECT NAME, DATETIME
FROM ANIMAL_INS
ORDER BY ANIMAL_ID DESC; # DESC ๋ก ์ญ์ ์ ๋ ฌ
2๏ธโฃ ๋๋ช ๋๋ฌผ ์ ์ฐพ๊ธฐ (https://school.programmers.co.kr/learn/courses/30/lessons/59041)
SELECT NAME, COUNT(ANIMAL_ID) AS COUNT # UNIQUE ํ ANIMAL_ID ๋ฅผ ๊ธฐ์ค์ผ๋ก COUNT
FROM ANIMAL_INS
WHERE NAME IS NOT NULL # NAME ์ปฌ๋ผ์ด NULL ์ธ ๊ฒฝ์ฐ ์ ์ธ
GROUP BY NAME # NAME ์ ๊ธฐ์ค์ผ๋ก ๊ทธ๋ฃนํ
HAVING COUNT(ANIMAL_ID) > 1 # ๊ทธ๋ฃนํ ํ ์ ์ฉ ๊ฐ๋ฅํ ์กฐ๊ฑด๋ฌธ HAVING ์ ํตํด์ 2๊ฐ ์ด์์ผ๋ก ๋ถ๋ฅ
ORDER BY NAME; # ์ต์ข
๋ฐ์ดํฐ๋ฅผ NAME ์ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌ
# GROUP BY ์ HAVING ์ ๋ฌธ๋ฒ
# GROUP BY : ํน์ ์ปฌ๋ผ ์ด๋ฆ์ ์ง์ ํด์ฃผ๋ฉด, ๊ทธ ์ปฌ๋ผ์ UNIQUE ํ ๊ฐ์ ๋ฐ๋ผ์ ๋ฐ์ดํฐ๋ฅผ ๊ทธ๋ฃน ์ง๊ณ , ์ค๋ณต๋ ์ด์ ์ ๊ฑฐ๋จ.
๋ณดํต ์งํฉ ํจ์ (aggregate function ; AVG, SUM, COUNT) ์ ํจ๊ป ์ฐ์.
# HAVING : GROUP BY ํ ๊ฒฐ๊ณผ์ ์กฐ๊ฑด์ ๋ถ์ด๊ณ ์ถ์ ๋ ์ฌ์ฉ
SELECT column-names
FROM table-name
WHERE condition
GROUP BY column-names
HAVING condition
3๏ธโฃ NULL ์ฒ๋ฆฌํ๊ธฐ (https://school.programmers.co.kr/learn/courses/30/lessons/59410)
# ๋ฐฉ๋ฒ (1) : IFNULL ๋ฌธ ํ์ฉ
SELECT ANIMAL_TYPE, IFNULL(NAME, "No name"), SEX_UPON_INTAKE
# IFNULL (์ปฌ๋ผ๋ช
, “๋์ฒดํ ๋ด์ฉ”) ๋ฌธ๋ฒ ์ฌ์ฉ
FROM ANIMAL_INS;
# ๋ฐฉ๋ฒ (2)-1 : IF ๋ฌธ ํ์ฉ
SELECT ANIMAL_TYPE, IF(NAME IS NULL, "No name", NAME), SEX_UPON_INTAKE
FROM ANIMAL_INS
# ๋ฐฉ๋ฒ (2)-2 : IF ๋ฌธ ํ์ฉ
SELECT ANIMAL_TYPE, IF(ISNULL(NAME), "No name", NAME), SEX_UPON_INTAKE
FROM ANIMAL_INS
4๏ธโฃ DATETIME์์ DATE๋ก ํ ๋ณํ (https://school.programmers.co.kr/learn/courses/30/lessons/59414)
# ๋ฐฉ๋ฒ (1) : DATE() ํ์ฉ _ ์ค์ ๋ก๋ ๋ ๊ฒ ๊ฐ์๋ฐ ํด๋น ์ฝ์์์๋ ๋จนํ์ง ์์
SELECT ANIMAL_ID, NAME, DATE(`DATETIME`) AS "๋ ์ง"
FROM ANIMAL_INS
ORDER BY ANIMAL_ID;
#๋ฐฉ๋ฒ (2) : DATE_FORMAT() ํ์ฉ
SELECT ANIMAL_ID, NAME, DATE_FORMAT(`DATETIME`, '%Y-%m-%d') AS "๋ ์ง" # ๋์๋ฌธ์์ ๋ฐ๋ผ ๋ค์ํ๊ฒ ์ถ๋ ฅ ๊ฐ๋ฅ
FROM ANIMAL_INS
ORDER BY ANIMAL_ID;
5๏ธโฃ ๊ณ ์์ด์ ๊ฐ๋ ๋ช ๋ง๋ฆฌ ์์๊น (https://school.programmers.co.kr/learn/courses/30/lessons/59040)
SELECT ANIMAL_TYPE, COUNT(ANIMAL_ID)
FROM ANIMAL_INS
GROUP BY ANIMAL_TYPE
ORDER BY ANIMAL_TYPE;
6๏ธโฃ ์ค์ฑํ ์ฌ๋ถ ํ์ ํ๊ธฐ (https://school.programmers.co.kr/learn/courses/30/lessons/59409)
# ๋ฐฉ๋ฒ (1) : IF & LIKE ํ์ฉ
SELECT ANIMAL_ID, NAME,
IF(SEX_UPON_INTAKE LIKE "Neutered%" OR SEX_UPON_INTAKE LIKE "Spayed%", "O", "X") AS ์ค์ฑํ
FROM ANIMAL_INS
ORDER BY ANIMAL_ID;
# ๋ฐฉ๋ฒ (2) : IF & REGEXP ํ์ฉ
SELECT ANIMAL_ID, NAME,
IF(SEX_UPON_INTAKE REGEXP 'Neutered|Spayed', "O", "X") AS ์ค์ฑํ
FROM ANIMAL_INS
ORDER BY ANIMAL_ID;
# ๋ฐฉ๋ฒ (3) : CASE & REGEXP ํ์ฉ
SELECT ANIMAL_ID, NAME,
(
CASE
WHEN SEX_UPON_INTAKE REGEXP 'Neutered|Spayed' THEN "O"
ELSE "X"
END
) AS "์ค์ฑํ"
FROM ANIMAL_INS
ORDER BY ANIMAL_ID;
# CASE ๋ฌธ๋ฒ
SELECT column-names,
(
CASE column-name
WHEN condition THEN order
WHEN condition THEN order
ElSE order
END
)
FROM table-name;
7๏ธโฃ ์ด๋ฆ์ด ์๋ ๋๋ฌผ์ ์์ด๋ (https://school.programmers.co.kr/learn/courses/30/lessons/59039)
SELECT ANIMAL_ID
FROM ANIMAL_INS
WHERE NAME IS NULL
ORDER BY ANIMAL_ID;
8๏ธโฃ ๋์ด ์ ๋ณด๊ฐ ์๋ ํ์ ์ ๊ตฌํ๊ธฐ
SELECT COUNT(USER_ID) AS USERS
FROM USER_INFO
WHERE AGE IS NULL;
9๏ธโฃ ์ ์ ์๊ฐ ๊ตฌํ๊ธฐ (1) (https://school.programmers.co.kr/learn/courses/30/lessons/59412)
SELECT HOUR(DATETIME), COUNT(ANIMAL_ID) # HOUR() ๋ก ์๊ฐ๋ง ์ถ์ถ / YEAR, MINUTE ๋ฑ ๋ ๊ฐ๋ฅ
FROM ANIMAL_OUTS
WHERE HOUR(DATETIME)>=9 AND HOUR(DATETIME)<=19
GROUP BY HOUR(DATETIME)
ORDER BY HOUR(DATETIME);'SQL ๐ฌ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| (Programmers) SQL ํ์ด (6) (0) | 2022.10.24 |
|---|---|
| (Programmers) SQL ํ์ด (5) (0) | 2022.10.23 |
| (Programmers) SQL ํ์ด (4) (0) | 2022.10.21 |
| (Programmers) SQL ํ์ด (3) (0) | 2022.10.20 |
| (Programmers) SQL ํ์ด (1) (0) | 2022.10.14 |