728x90
조건별로 분류하여 주문상태 출력하기
-- 5월 1일 기준
-- 주문 ID, 제품 ID, 출고일자, 출고여부
-- 5월 1일까지 출고완료, 이후 날짜는 출고 대기, 미정이면 출고미정
-- 주문 ID 기준 오름차순
SELECT ORDER_ID, PRODUCT_ID, DATE_FORMAT(OUT_DATE, '%Y-%m-%d') AS OUT_DATE,
CASE WHEN OUT_DATE <= '2022-05-01' THEN '출고완료'
WHEN OUT_DATE > '2022-05-01' THEN '출고대기'
ELSE '출고미정'
END AS '출고여부'
FROM FOOD_ORDER
ORDER BY ORDER_ID
- 다시 풀어 보기
루시와 엘라 찾기
-- 이름이 Lucy, Ella, Pickle, Rogan, Sabrina, Mitty인 동물
-- 아이디, 이름, 성별 및 중성화 여부
-- 아이디순
SELECT ANIMAL_ID, NAME, SEX_UPON_INTAKE
FROM ANIMAL_INS
WHERE NAME IN ('Lucy', 'Ella', 'Pickle', 'Rogan', 'Sabrina', 'Mitty')
ORDER BY ANIMAL_ID;
이름에 EL이 들어가는 동물 찾기
-- 이름에 EL이 들어가는 개의 아이디와 이름
-- 이름순
-- 대소문자 구분하지 않음
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE ANIMAL_TYPE = 'Dog' AND UPPER(NAME) LIKE '%EL%'
ORDER BY NAME;
중성화 여부 파악하기
-- NEUTERED 또는 SPAYED
-- 아이디, 이름, 중성화 여부
-- 아이디순
-- 중성화가 됐으면 O, 아니라면 X
SELECT ANIMAL_ID, NAME,
CASE WHEN SEX_UPON_INTAKE LIKE 'Neutered%' THEN 'O'
WHEN SEX_UPON_INTAKE LIKE 'Spayed%' THEN 'O'
ELSE 'X'
END AS '중성화'
FROM ANIMAL_INS
ORDER BY ANIMAL_ID;
오랜 기간 보호한 동물(2)
-- 보호 기간이 가장 길었던 동물 두 마리
-- 아이디, 이름
-- 보호 기간이 긴 순
SELECT AO.ANIMAL_ID, AO.NAME
FROM ANIMAL_OUTS AO INNER JOIN ANIMAL_INS AI
ON AO.ANIMAL_ID = AI.ANIMAL_ID
ORDER BY DATEDIFF(AO.DATETIME, AI.DATETIME) DESC
LIMIT 2;
카테고리별 상품 개수 구하기
-- 상품 카테고리 코드 앞 두자리별 상품 개수
-- 상품 카테고리 코드 기준 오름차순
SELECT LEFT(PRODUCT_CODE, 2) AS CATEGORY, COUNT(*) AS PRODUCTS
FROM PRODUCT
GROUP BY LEFT(PRODUCT_CODE, 2)
ORDER BY CATEGORY;
DATETIME에서 DATE로 형 변환
-- 아이디와 이름, 들어온 날짜
-- 아이디순
SELECT ANIMAL_ID, NAME, DATE_FORMAT(DATETIME, '%Y-%m-%d')
FROM ANIMAL_INS
ORDER BY ANIMAL_ID;
728x90
'프로그래밍 > DB' 카테고리의 다른 글
[DB] 더미 데이터 넣기 메모 (0) | 2022.10.28 |
---|---|
[SQL][프로그래머스] IS NULL 문제 풀이 (0) | 2022.10.18 |
[SQL][프로그래머스] GROUP BY 문제 풀이 (0) | 2022.10.17 |
[SQL][프로그래머스] SUM, MAX, MIN 문제 풀이 (0) | 2022.10.16 |
[SQL][프로그래머스] SELECT 문제 풀이 (0) | 2022.10.15 |