MySQL
최솟값 구하기
SELECT DATETIME
FROM ANIMAL_INS
ORDER BY DATETIME
LIMIT 1
;
SELECT MIN(DATETIME)
FROM ANIMAL_INS
;
- 본래는 아래처럼
MIN()을 사용하면 되지만 MIN()을 모르고 LIMIT만 알고있어서 크기순으로 정렬후 한개 제한해서 출력
이름에 el들어가는 동물 찾기
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE NAME LIKE "%el%"
AND ANIMAL_TYPE = "DOG"
ORDER BY NAME
;
중성화 여부 파악하기
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 O.ANIMAL_ID, O.NAME
FROM ANIMAL_OUTS O
JOIN ANIMAL_INS I
ON O.ANIMAL_ID = I.ANIMAL_ID
ORDER BY DATEDIFF(O.DATETIME, I.DATETIME) DESC
LIMIT 2
;
DATEDIFF(A,B): A와 B의 시간차이를 계산
- 입양간 동물만 대상이므로
ANIMAL_OUTS에 ANIMAL_INS를 JOIN
카테고리 별 상품 개수 구하기
SELECT SUBSTR(PRODUCT_CODE,1,2) AS CATEGORY, COUNT(PRODUCT_ID) AS PRODUCTS
FROM PRODUCT
GROUP BY CATEGORY
;
SUBSTR(문자열, 시작위치, 길이)
- 문자열에서 지정한 시작 위치부터 원하는 길이만큼의 부분 문자열을 추출하는 함수
- 특징:
- 시작 위치는 1부터 시작
- 길이를 생략하면 시작 위치부터 끝까지 추출
- 문자열, 숫자 컬럼 모두 사용 가능(자동 문자열 변환)