최솟값 구하기
SELECT MIN(DATETIME) FROM ANIMAL_INS
동물 수 구하기
- 링크:
- 풀이 : COUNT(*) 절을 사용해서 갯수 구하기
SELECT COUNT(*) FROM ANIMAL_INS;
중복 제거하기
- 링크:
- 풀이 : COUNT 절, DISTINCT절 사용
- COUNT(DISTINCT NAME) : NAME 컬럼의 갯수를 중복제거하고 구해라
- WHERE NAME IS NOT NULL : NAME 칼럼에서 NULL 이 아닌걸로
SELECT COUNT(DISTINCT NAME) FROM ANIMAL_INS WHERE NAME IS NOT NULL;
NULL 처리하기
SELECT ANIMAL_TYPE, IFNULL(NAME,'No name'),SEX_UPON_INTAKE FROM ANIMAL_INS ORDER BY ANIMAL_ID ASC;
- IFNULL(NAME,'No name') 이거는 처음알았다 유용할듯!
루시와 엘라 찾기
SELECT ANIMAL_ID, NAME, SEX_UPON_INTAKE FROM ANIMAL_INS WHERE NAME IN ('Lucy', 'Ella', 'Pickle', 'Rogan', 'Sabrina', 'Mitty')
- or연산을 돌리니까 내 생각이랑 다르게 동작한다는걸 배워간다.
- WHERE NAME IN ('Lucy', 'Ella', 'Pickle', 'Rogan', 'Sabrina', 'Mitty') 이런식으로 작성해야한다!
이름에 el이 들어가는 동물 찾기
SELECT ANIMAL_ID, NAME FROM ANIMAL_INS WHERE NAME LIKE '%el%' AND ANIMAL_TYPE = 'Dog' ORDER BY NAME ASC;
DATETIME에서 DATE로 형 변환
SELECT ANIMAL_ID,NAME,DATE_FORMAT(DATETIME, '%Y-%m-%d') AS 날짜 FROM ANIMAL_INS
중성화 여부 파악하기
- 링크 : https://programmers.co.kr/learn/courses/30/lessons/59409
- 풀이 : - CASE 절을 사용하는게 관건이였습니다.
- WHEN 절에 조건을 넣고
- SEX_UPON_INTAKE LIKE '%Neutered%'
- SEX_UPON_INTAKE LIKE '%Spayed%'
- THEN - WHEN 절을 사용하는데
- 참인 경우 THEN 'O'
- 거짓인 경우 ELSE 'X'
- 마지막에는 END로 끝내고
- AS '중성화' 절로 컬럼의 이름을 커스터마이징 해줍니다.
- 중성화된 동물은 SEX_UPON_INTAKE 컬럼에 'Neutered' 또는 'Spayed'라는 단어가 들어있으므로 이 조건을 사용해 문제를 풀면 됩니다
SELECT ANIMAL_ID,NAME,
CASE WHEN SEX_UPON_INTAKE LIKE '%Neutered%' OR SEX_UPON_INTAKE LIKE '%Spayed%'
THEN 'O' ELSE 'X' END as '중성화'
FROM ANIMAL_INS
입양 시각 구하기(1)
SELECT HOUR(DATETIME) AS HOUR,COUNT(DATETIME) AS COUNT
FROM ANIMAL_OUTS
WHERE HOUR(DATETIME) >= 9 AND HOUR(DATETIME) <= 19
GROUP BY HOUR(DATETIME) ORDER BY HOUR ASC;