๐Ÿฌ MySQL/๋ฌธ์ œํ’€์ด

[MySQL] SQL ์ฝ”๋”ฉํ…Œ์ŠคํŠธ Day2

xod22 2022. 2. 13. 12:20
728x90

์ €๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” SELECT ๋ฌธ์ œ๋“ค์„ ์—ฐ์Šตํ•ด๋ณด์•˜๋Š”๋ฐ์š”! 

์˜ค๋Š˜์€ ์—ฐ์‚ฐ์ด ๋“ค์–ด๊ฐ„ SUM/MIN/MAX๋ฅผ ์—ฐ์Šตํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ๋ณธ์ ์ธ SQL๋ฌธ ์ˆœ์„œ

SELECT --์ปฌ๋Ÿผ๋ช…

FROM --ํ…Œ์ด๋ธ”๋ช…

WHERE --ํ…Œ์ด๋ธ” ์กฐ๊ฑด

GROUP BY --์ปฌ๋Ÿผ๋ช…

HAVING --๊ทธ๋ฃน ์กฐ๊ฑด

ORDER BY --์ปฌ๋Ÿผ๋ช…


2. SUM/MAX/MIN

https://programmers.co.kr/learn/courses/30/lessons/59415

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ์ตœ๋Œ“๊ฐ’ ๊ตฌํ•˜๊ธฐ

ANIMAL_INS ํ…Œ์ด๋ธ”์€ ๋™๋ฌผ ๋ณดํ˜ธ์†Œ์— ๋“ค์–ด์˜จ ๋™๋ฌผ์˜ ์ •๋ณด๋ฅผ ๋‹ด์€ ํ…Œ์ด๋ธ”์ž…๋‹ˆ๋‹ค. ANIMAL_INS ํ…Œ์ด๋ธ” ๊ตฌ์กฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์œผ๋ฉฐ, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE๋Š” ๊ฐ๊ฐ ๋™๋ฌผ์˜ ์•„์ด๋””

programmers.co.kr

 

๋ฌธ์ œ 1 : MAX( )

 

ANIMAL_INS ํ…Œ์ด๋ธ”์€ ๋™๋ฌผ ๋ณดํ˜ธ์†Œ์— ๋“ค์–ด์˜จ ๋™๋ฌผ์˜ ์ •๋ณด๋ฅผ ๋‹ด์€ ํ…Œ์ด๋ธ”์ž…๋‹ˆ๋‹ค. ANIMAL_INS ํ…Œ์ด๋ธ” ๊ตฌ์กฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์œผ๋ฉฐ, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE๋Š” ๊ฐ๊ฐ ๋™๋ฌผ์˜ ์•„์ด๋””, ์ƒ๋ฌผ ์ข…, ๋ณดํ˜ธ ์‹œ์ž‘์ผ, ๋ณดํ˜ธ ์‹œ์ž‘ ์‹œ ์ƒํƒœ, ์ด๋ฆ„, ์„ฑ๋ณ„ ๋ฐ ์ค‘์„ฑํ™” ์—ฌ๋ถ€๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

 

๊ฐ€์žฅ ์ตœ๊ทผ์— ๋“ค์–ด์˜จ ๋™๋ฌผ์€ ์–ธ์ œ ๋“ค์–ด์™”๋Š”์ง€(DATETIME) ์กฐํšŒํ•˜๋Š” SQL ๋ฌธ์„ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”

 

๋ฌธ์ œ 1 ํ’€์ด

 

=> DATETIME์ค‘ MAX๊ฐ’์„ "์‹œ๊ฐ„"์ด๋ผ๋Š” ํ•„๋“œ๋ช…์œผ๋กœ ๋ฐ”๊ฟ”์„œ ํ‘œ์‹œ!

SELECT MAX(DATETIME) AS "์‹œ๊ฐ„"
FROM ANIMAL_INS;

๋ฌธ์ œ 2 : MIN( )

 

๋™๋ฌผ ๋ณดํ˜ธ์†Œ์— ๊ฐ€์žฅ ๋จผ์ € ๋“ค์–ด์˜จ ๋™๋ฌผ์€ ์–ธ์ œ ๋“ค์–ด์™”๋Š”์ง€(DATETIME) ์กฐํšŒํ•˜๋Š” SQL ๋ฌธ์„ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.

 

๋ฌธ์ œ 2 ํ’€์ด

 

=> ๋ฌธ์ œ1์˜ MAX๋ฅผ MIN์œผ๋กœ๋งŒ ๋ฐ”๊ฟ”์ฃผ๋ฉด ๋จ!

SELECT MIN(DATETIME) AS "์‹œ๊ฐ„"
FROM ANIMAL_INS

๋ฌธ์ œ 3 : COUNT( )

 

๋™๋ฌผ ๋ณดํ˜ธ์†Œ์— ๋™๋ฌผ์ด ๋ช‡ ๋งˆ๋ฆฌ ๋“ค์–ด์™”๋Š”์ง€ ์กฐํšŒํ•˜๋Š” SQL ๋ฌธ์„ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.

 

๋ฌธ์ œ 3 ํ’€์ด

 

=> ๋ฌธ์ œ๋ฅผ ๋ณด์ž๋งˆ์ž COUNTํ•จ์ˆ˜๊ฐ€ ์ƒ๊ฐ๋‚ฌ์Šต๋‹ˆ๋‹ค..!

SELECT COUNT(*) AS "count"
FROM ANIMAL_INS

*์ฐธ๊ณ 

COUNTํ•จ์ˆ˜๋Š” NULL๊ฐ’์„ ๋ฌด์‹œํ•˜๊ณ  ์„ธ๊ธฐ ๋•Œ๋ฌธ์— 

NULL๊ฐ’์ด ํฌํ•จ๋˜์ง€ ์•Š๋Š” ํ•„๋“œ๋ช…์„ ๋„ฃ์–ด์ค˜๋„ ๋œ๋‹ค.

์ด ๋ฌธ์ œ์—์„œ๋Š” ANIMAL_IDํ•„๋“œ๊ฐ€ NOT NULL์ด๋ฏ€๋กœ, COUNT(ANIMAL_ID)๋กœ ํ•ด์ค˜๋„ ๋œ๋‹ค..!


๋ฌธ์ œ 4 : ์ค‘๋ณต ์ œ๊ฑฐํ•˜๊ธฐ 

 

๋™๋ฌผ ๋ณดํ˜ธ์†Œ์— ๋“ค์–ด์˜จ ๋™๋ฌผ์˜ ์ด๋ฆ„์€ ๋ช‡ ๊ฐœ์ธ์ง€ ์กฐํšŒํ•˜๋Š” SQL ๋ฌธ์„ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”. ์ด๋•Œ ์ด๋ฆ„์ด NULL์ธ ๊ฒฝ์šฐ๋Š” ์ง‘๊ณ„ํ•˜์ง€ ์•Š์œผ๋ฉฐ ์ค‘๋ณต๋˜๋Š” ์ด๋ฆ„์€ ํ•˜๋‚˜๋กœ ์นฉ๋‹ˆ๋‹ค.

 

๋ฌธ์ œ 4 ํ’€์ด

 

=> ์ค‘๋ณต๋˜๋Š” ์ด๋ฆ„์€ ํ•˜๋‚˜๋กœ ์นœ๋‹ค๊ณ  ํ–ˆ์œผ๋ฏ€๋กœ DISTINCT NAME์„ ์จ์ค˜์•ผํ•จ.

=> NULL์€ ์ง‘๊ณ„ํ•˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ํ–ˆ์œผ๋ฏ€๋กœ ์กฐ๊ฑด๋ฌธ์— NAME IS NOT NULL์„ ์จ์ค˜์•ผํ•จ.

SELECT COUNT(DISTINCT NAME) AS "count"
FROM ANIMAL_INS
WHERE NAME IS NOT NULL;

-๋„์-

728x90