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

[SQL ์ฝ”๋“œ์นดํƒ€] ๋ ˆ๋ฒจ 2 / 11~30

0๏ธโƒฃ 2026. 1. 2. 23:00

11. ์—ฌ๋Ÿฌ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌํ•˜๊ธฐ

select ANIMAL_ID, NAME, DATETIME
from ANIMAL_INS
order by NAME, DATETIME desc;

12. ์ด๋ฆ„์— el์ด ๋“ค์–ด๊ฐ€๋Š” ๋™๋ฌผ ์ฐพ๊ธฐ

select ANIMAL_ID, NAME
from ANIMAL_INS
where ANIMAL_TYPE = 'Dog' and NAME like '%el%'
order by NAME;

13. ๋‚˜์ด ์ •๋ณด๊ฐ€ ์—†๋Š” ํšŒ์› ์ˆ˜ ๊ตฌํ•˜๊ธฐ

select count(*) as USERS
from USER_INFO
where AGE is null;

14. ๊ฐ€์žฅ ๋น„์‹ผ ์ƒํ’ˆ ๊ตฌํ•˜๊ธฐ

select max(PRICE) as MAX_PRICE
from PRODUCT;

15. NULL ์ฒ˜๋ฆฌํ•˜๊ธฐ

select ANIMAL_TYPE
      , ifnull(NAME, 'No name')
      , SEX_UPON_INTAKE
from ANIMAL_INS
order by ANIMAL_ID;

16. ๊ฒฝ๊ธฐ๋„์— ์œ„์น˜ํ•œ ์‹ํ’ˆ์ฐฝ๊ณ  ๋ชฉ๋ก ์ถœ๋ ฅํ•˜๊ธฐ

select WAREHOUSE_ID, WAREHOUSE_NAME, ADDRESS, ifnull(FREEZER_YN, 'N')
from FOOD_WAREHOUSE
where ADDRESS like '๊ฒฝ๊ธฐ๋„%'
order by WAREHOUSE_ID;

17. ๊ฐ•์›๋„์— ์œ„์น˜ํ•œ ์ƒ์‚ฐ๊ณต์žฅ ๋ชฉ๋ก ์ถœ๋ ฅํ•˜๊ธฐ

select FACTORY_ID, FACTORY_NAME, ADDRESS
from FOOD_FACTORY
where ADDRESS like '๊ฐ•์›๋„%'
order by FACTORY_ID;

18. DATETIME์—์„œ DATE๋กœ ํ˜• ๋ณ€ํ™˜

select ANIMAL_ID
      , NAME
      , date_format(DATETIME, '%Y-%m-%d') as '๋‚ ์งœ'
from ANIMAL_INS
order by ANIMAL_ID;
  • ์˜ค๋ฅ˜ ์ƒํ™ฉ
    - date(DATETIME) ์œผ๋กœ ์‹œ๋„ → ' 2018-01-22 00:00:00' ํ˜•์‹์œผ๋กœ ์ถœ๋ ฅ๋จ.
    - date_format(DATETIME, 'yyyy-mm-dd') ์‹œ๋„ → ์—๋Ÿฌ
  • ์ตœ์ข… ์‹œ๋„ ๋ฐฉ๋ฒ•
    date_format(DATETIME, '%Y-%m-%d')

19. ํ‰๋ถ€์™ธ๊ณผ ๋˜๋Š” ์ผ๋ฐ˜์™ธ๊ณผ ์˜์‚ฌ ๋ชฉ๋ก ์ถœ๋ ฅํ•˜๊ธฐ

select DR_NAME
    , DR_ID
    , MCDP_CD
    , date_format(HIRE_YMD, '%Y-%m-%d')
from DOCTOR
where MCDP_CD in ('CS', 'GS')
order by HIRE_YMD desc, DR_NAME;

20. ๊ฐ€๊ฒฉ์ด ์ œ์ผ ๋น„์‹ผ ์‹ํ’ˆ์˜ ์ •๋ณด ์ถœ๋ ฅํ•˜๊ธฐ

select PRODUCT_ID
       , PRODUCT_NAME
       , PRODUCT_CD
       , CATEGORY
       , PRICE
from FOOD_PRODUCT
order by PRICE desc
limit 1;

21. ์ด๋ฆ„์ด ์—†๋Š” ๋™๋ฌผ์˜ ์•„์ด๋””

select ANIMAL_ID
from ANIMAL_INS
where NAME is null
order by ANIMAL_ID;

22. ์กฐ๊ฑด์— ๋งž๋Š” ํšŒ์›์ˆ˜ ๊ตฌํ•˜๊ธฐ

select count(USER_ID) as USERS
from USER_INFO
where JOINED between '2021-01-01' and '2021-12-31'
and AGE between 20 and 29;

23. ์ค‘์„ฑํ™” ์—ฌ๋ถ€ ํŒŒ์•…ํ•˜๊ธฐ

select ANIMAL_ID, NAME
      , case when SEX_UPON_INTAKE in ('Neutered %', 'Spayed %') then 'O'
            else 'X'
            end '์ค‘์„ฑํ™”'
from ANIMAL_INS
order by ANIMAL_ID;
  • ์ตœ์ข… ์ฝ”๋“œ
select ANIMAL_ID, NAME
      , case when SEX_UPON_INTAKE like 'Neutered %' or 'Spayed %' then 'O'
            else 'X'
            end '์ค‘์„ฑํ™”'
from ANIMAL_INS
order by ANIMAL_ID;
  • ์˜ค๋ฅ˜ ์ƒํ™ฉ
    case when ์ปฌ๋Ÿผ in (๊ฐ’1, ๊ฐ’2)์— ์™€์ผ๋“œ์นด๋“œ(%) ์‚ฌ์šฉํ•ด์„œ ์˜ค๋ฅ˜.
  • ์ตœ์ข… ์‹œ๋„ ๋ฐฉ๋ฒ•
    ์™€์ผ๋“œ์นด๋“œ(%) ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ LIKE ๊ตฌ๋ฌธ ์‚ฌ์šฉ

24. ์นดํ…Œ๊ณ ๋ฆฌ ๋ณ„ ์ƒํ’ˆ ๊ฐœ์ˆ˜ ๊ตฌํ•˜๊ธฐ

select substr(PRODUCT_CODE, 1, 2) as CATEGORY
       , count(distinct product_id) as 	PRODUCTS
from PRODUCT
group by 1
order by 1;

25. ๊ณ ์–‘์ด์™€ ๊ฐœ๋Š” ๋ช‡ ๋งˆ๋ฆฌ ์žˆ์„๊นŒ

select ANIMAL_TYPE
      , count(distinct ANIMAL_ID) as count
from ANIMAL_INS
group by ANIMAL_TYPE
order by ANIMAL_TYPE asc;

26. ์ž…์–‘ ์‹œ๊ฐ ๊ตฌํ•˜๊ธฐ(1)

select hour(DATETIME) as HOUR
       , count(ANIMAL_ID) as COUNT
from ANIMAL_OUTS
where hour(DATETIME) between 9 and 19
group by hour(DATETIME)
order by hour(DATETIME);
  • ์˜ค๋ฅ˜ ์ƒํ™ฉ
  • ์‹œ๋„ ๋ฐฉ๋ฒ•
  • ์ตœ์ข… ๋ฌธ์ œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

27. ์ง„๋ฃŒ๊ณผ๋ณ„ ์ด ์˜ˆ์•ฝ ํšŸ์ˆ˜ ์ถœ๋ ฅํ•˜๊ธฐ

select MCDP_CD as '์ง„๋ฃŒ๊ณผ ์ฝ”๋“œ',
       count(distinct PT_NO) as '5์›”์˜ˆ์•ฝ๊ฑด์ˆ˜'
from APPOINTMENT
where date_format(APNT_YMD, '%Y-%m') = '2022-05'
group by MCDP_CD
order by count(distinct PT_NO), MCDP_CD;

28. 12์„ธ ์ดํ•˜์ธ ์—ฌ์ž ํ™˜์ž ๋ชฉ๋ก ์ถœ๋ ฅํ•˜๊ธฐ

select PT_NAME, PT_NO, GEND_CD, AGE, coalesce(TLNO, 'NONE') as 	TLNO
from PATIENT
where AGE <= 12 and GEND_CD='W'
order by AGE desc, PT_NAME;

29. ์ธ๊ธฐ ์žˆ๋Š” ์•„์ด์Šคํฌ๋ฆผ

select FLAVOR
from FIRST_HALF
order by TOTAL_ORDER desc, SHIPMENT_ID;

30. ์ž๋™์ฐจ ์ข…๋ฅ˜ ๋ณ„ ํŠน์ • ์˜ต์…˜์ด ํฌํ•จ๋œ ์ž๋™์ฐจ ์ˆ˜ ๊ตฌํ•˜๊ธฐ

select CAR_TYPE
       , count(distinct CAR_ID) as CARS
from CAR_RENTAL_COMPANY_CAR
where OPTIONS like '%ํ†ตํ’์‹œํŠธ%' or '%์—ด์„ ์‹œํŠธ%' or '%๊ฐ€์ฃฝ์‹œํŠธ%'
group by CAR_TYPE
order by CAR_TYPE
  • ์ •๋‹ต์ฝ”๋“œ
select CAR_TYPE
       , count(distinct CAR_ID) as CARS
from CAR_RENTAL_COMPANY_CAR
where OPTIONS like '%ํ†ตํ’์‹œํŠธ%' or OPTIONS like '%์—ด์„ ์‹œํŠธ%' or OPTIONS like '%๊ฐ€์ฃฝ์‹œํŠธ%'
group by CAR_TYPE
order by CAR_TYPE
  • ์˜ค๋ฅ˜ ์ƒํ™ฉ
    where ์ปฌ๋Ÿผ์— ์กฐ๊ฑด์„ or๋กœ ๋‹ฌ ๋•Œ, ๋งค๋ฒˆ ์ปฌ๋Ÿผ์„ ์ ์ง€ ์•Š์Œ.
  • ์ตœ์ข… ์‹œ๋„ ๋ฐฉ๋ฒ•
    or๋กœ ์—ฌ๋Ÿฌ ์กฐ๊ฑด์„ ๋ถ™์ผ ๋•Œ, '์ปฌ๋Ÿผ like ์กฐ๊ฑด'์„ ๋งค๋ฒˆ ์ ์–ด์•ผ ํ•จ.