์ŠคํŒŒ๋ฅดํƒ€ ๋‚ด์ผ๋ฐฐ์›€์บ ํ”„(25.12.01~)

[SQL ์ฝ”๋“œ์นดํƒ€] ๋ ˆ๋ฒจ 1 / 1~10

0๏ธโƒฃ 2025. 12. 31. 17:23

1. ์ด๋ฆ„ ์žˆ๋Š” ๋™๋ฌผ์˜ ID๋ฌธ์ œ ๋งํฌ:

  • ์ •๋‹ต ์ฝ”๋“œ
select ANIMAL_ID
FROM ANIMAL_INS
where NAME is not null
order by ANIMAL_ID;

2. ์—ญ์ˆœ ์ •๋ ฌํ•˜๊ธฐ

  • ์ •๋‹ต ์ฝ”๋“œ
select NAME, DATETIME
from ANIMAL_INS
order by ANIMAL_ID desc;

3. ์ค‘๋ณต ์ œ๊ฑฐํ•˜๊ธฐ

  • ์ •๋‹ต ์ฝ”๋“œ
select count(distinct NAME)
from ANIMAL_INS;

4. ๋™๋ฌผ์˜ ID์™€ ์ด๋ฆ„

select ANIMAL_ID, NAME
from ANIMAL_INS
order by ANIMAL_ID;

5. ๋™๋ฌผ ์ˆ˜ ๊ตฌํ•˜๊ธฐ

select count(distinct ANIMAL_ID) as count
from ANIMAL_INS;

6. ๋™๋ช… ๋™๋ฌผ ์ˆ˜ ์ฐพ๊ธฐ

select NAME, 
       count(NAME) as COUNT
from ANIMAL_INS
where NAME is not null
group by NAME
having count(NAME)>=2
order by NAME

7. ์•„ํ”ˆ ๋™๋ฌผ ์ฐพ๊ธฐ

select ANIMAL_ID, NAME
from ANIMAL_INS
where INTAKE_CONDITION='Sick'
order by ANIMAL_ID;

8. ์ƒ์œ„ n๊ฐœ ๋ ˆ์ฝ”๋“œ

with
    min as (select NAME
                  , min(DATETIME) as min_datetime
             from ANIMAL_INS
             )
select NAME
from min;
  • ์˜ค๋ฅ˜ ์ƒํ™ฉ
    ๋ถˆํ•„์š”ํ•˜๊ฒŒ ๋ณต์žกํ•œ ์ฟผ๋ฆฌ๋ฌธ ์ž‘์„ฑ
  • ์‹œ๋„ ๋ฐฉ๋ฒ•
    order by๋กœ ํŠน์ • ์ปฌ๋Ÿผ ๊ธฐ์ค€์œผ๋กœ ์ˆœ์„œ๋Œ€๋กœ ๋‚˜์—ด → LIMIT์œผ๋กœ ์ƒ์œ„ N๊ฐœ๋งŒ ์ถœ๋ ฅ
  • ์ตœ์ข… ๋ฌธ์ œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•
select NAME
from ANIMAL_INS
order by DATETIME
limit 1;

9. ์ตœ์†Ÿ๊ฐ’ ๊ตฌํ•˜๊ธฐ

select min(DATETIME) as "์‹œ๊ฐ„"
from ANIMAL_INS;

10. ์–ด๋ฆฐ ๋™๋ฌผ ์ฐพ๊ธฐ

select ANIMAL_ID, NAME
from ANIMAL_INS
where INTAKE_CONDITION <> 'aged'
order by ANIMAL_ID