4-1 고양이와 개는 몇 마리 있을까
SELECT ANIMAL_TYPE,COUNT(ANIMAL_TYPE)
FROM ANIMAL_INS
GROUP BY ANIMAL_TYPE
GROUP BY함수를 이용해서 GROUP화 해주었고, COUNT를 이용해서 셌다.
4-2 동명 동물 수 찾기
SELECT NAME,COUNT(NAME) AS COUNT
FROM ANIMAL_INS
GROUP BY NAME
HAVING COUNT(NAME)>=2
GROUP 한 경우 조건을 달아줄 때는 HAVING을 이용한다.
JOIN 문이 들어가서부터 조금 어려웠다.
5-1 없어진 기록 찾기
SELECT B.ANIMAL_ID ,B.NAME
FROM ANIMAL_INS AS A RIGHT JOIN ANIMAL_OUTS AS B
ON A.ANIMAL_ID=B.ANIMAL_ID
WHERE A.ANIMAL_ID IS NULL
문제 상황은 이 경우이므로 위와 같다.
5-2 있었는데요 없었습니다.
SELECT A.ANIMAL_ID,A.NAME
FROM ANIMAL_INS AS A, ANIMAL_OUTS AS B
WHERE A.ANIMAL_ID=B.ANIMAL_ID AND A.DATETIME > B.DATETIME
ORDER BY A.DATETIME
6-1 오랜 기간 보호한 동물(1)
SELECT INS.NAME,INS.DATETIME
FROM ANIMAL_INS AS INS LEFT JOIN ANIMAL_OUTS AS OUTS
ON INS.ANIMAL_ID=OUTS.ANIMAL_ID
WHERE OUTS.ANIMAL_ID IS NULL
ORDER BY INS.DATETIME
LIMIT 3
6-2 보호소에서 중성화한 동물
SELECT INS.ANIMAL_ID,INS.ANIMAL_TYPE,INS.NAME
FROM ANIMAL_INS AS INS JOIN ANIMAL_OUTS AS OUTS
ON INS.ANIMAL_ID=OUTS.ANIMAL_ID
WHERE INS.SEX_UPON_INTAKE LIKE 'Intact%'
AND (OUTS.SEX_UPON_OUTCOME LIKE 'Spayed%'
OR OUTS.SEX_UPON_OUTCOME LIKE 'Neutered%')
문자열을 조사할 때는 LIKE을 이용한다.
7-1 루시와 엘라 찾기
SELECT ANIMAL_ID, NAME,SEX_UPON_INTAKE
FROM ANIMAL_INS
WHERE NAME LIKE 'Lucy'
OR NAME LIKE 'Ella'
OR NAME LIKE 'Pickle'
OR NAME LIKE 'Rogan'
OR NAME LIKE 'Sabrina'
OR NAME LIKE 'Mitty'
ORDER BY ANIMAL_ID
7-2 이름에 el이 들어가는 동물 찾기
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE UPPER(NAME) LIKE '%EL%'
AND ANIMAL_TYPE='Dog'
ORDER BY NAME
대소문자를 모두 검색하기 위해서 이름을 UPPER이용해서 대문자로 바꿔주었다.