DBMS/Oracle

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค SQL <์ƒ์œ„ n๊ฐœ ๋ ˆ์ฝ”๋“œ> MySQL, Oracle

seulye 2021. 9. 28. 21:07

๋ฌธ์ œ ์„ค๋ช…

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

NAMETYPENULLABLE

ANIMAL_ID VARCHAR(N) FALSE
ANIMAL_TYPE VARCHAR(N) FALSE
DATETIME DATETIME FALSE
INTAKE_CONDITION VARCHAR(N) FALSE
NAME VARCHAR(N) TRUE
SEX_UPON_INTAKE VARCHAR(N) FALSE

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

 

์˜ˆ์‹œ

์˜ˆ๋ฅผ ๋“ค์–ด ANIMAL_INS ํ…Œ์ด๋ธ”์ด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค๋ฉด

ANIMAL_IDANIMAL_TYPEDATETIMEINTAKE_CONDITIONNAMESEX_UPON_INTAKE

A399552 Dog 2013-10-14 15:38:00 Normal Jack Neutered Male
A379998 Dog 2013-10-23 11:42:00 Normal Disciple Intact Male
A370852 Dog 2013-11-03 15:04:00 Normal Katie Spayed Female
A403564 Dog 2013-11-18 17:03:00 Normal Anna Spayed Female

์ด ์ค‘ ๊ฐ€์žฅ ๋ณดํ˜ธ์†Œ์— ๋จผ์ € ๋“ค์–ด์˜จ ๋™๋ฌผ์€ Jack์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ SQL๋ฌธ์„ ์‹คํ–‰ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋‚˜์™€์•ผ ํ•ฉ๋‹ˆ๋‹ค.

NAME

Jack

โ€ป ๋ณดํ˜ธ์†Œ์— ๊ฐ€์žฅ ๋จผ์ € ๋“ค์–ด์˜จ ๋™๋ฌผ์€ ํ•œ ๋งˆ๋ฆฌ์ธ ๊ฒฝ์šฐ๋งŒ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค.

 

 

 


์˜ˆ์ „์— MySQL๋กœ ํ’€์—ˆ์„ ๋•Œ๋Š”

SELECT NAME FROM ANIMAL_INS
ORDER BY DATETIME LIMIT 1

์ด๋ ‡๊ฒŒ ํ’€์—ˆ์—ˆ๋‹ค. ๊ต‰์žฅํžˆ ๊น”๋”.

 

 

 

ํ˜„ํšŒ์‚ฌ์—์„œ ORACLE์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์–ด์„œ, ์ง€๊ธˆ์€ ORACLE์ด ํ›จ~ ์ต์ˆ™ํ•œ๋ฐ

MySQL์ฒ˜๋Ÿผ ๊น”๋”ํ•˜๊ฒŒ ๋”ฑ ๊ตฌํ–ˆ๋˜๊ฒŒ ์žˆ์—ˆ๋‚˜? ํ•˜๋ฉฐ RANKํ•จ์ˆ˜๋ฅผ ๋– ์˜ฌ๋ ธ์ง€๋งŒ...

์ฐพ์•„๋ณด๋‹ˆ ์ƒ๊ฐ๋ณด๋‹ค ๋ณต์žกํ–ˆ๋‹ค. RANK๋ฅผ ์™ธ์›Œ์„œ ์‚ฌ์šฉํ•˜๋А๋‹ˆ, ๋ง˜ํŽธํžˆ ์„œ๋ธŒ์ฟผ๋ฆฌ๋ฅผ ์ด์šฉํ•˜๋Š”๊ฒŒ ๋” ๋‚˜์„ ๊ฒƒ ๊ฐ™๋‹ค.

์•”ํŠผ, 2๊ฐ€์ง€ ๋ฐฉ๋ฒ•์œผ๋กœ ํ’€์–ด๋ดค๋‹ค. 

 

 

1. 

DATETIME์œผ๋กœ ์ •๋ ฌ๋œ ๋ฐ์ดํ„ฐ ์ค‘ ๊ฐ€์žฅ ์ฒซ ๋ฒˆ์งธ ROW ๋ฝ‘์•„์˜ค๊ธฐ

SELECT NAME
FROM (SELECT * 
	    FROM ANIMAL_INS 
	ORDER BY DATETIME)
WHERE ROWNUM=1

 

 

2. ์„œ๋ธŒ์ฟผ๋ฆฌ2

MIN(DATETIME) ๊ณผ ๊ฐ™์€ DATETIME์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” NAME ๋ฝ‘์•„๋‚ด๊ธฐ

 

SELECT NAME
FROM ANIMAL_INS 
WHERE DATETIME = (SELECT MIN(DATETIME)
                    FROM ANIMAL_INS 
                 )