고양이와 개는 몇 마리 있을까
SELECT ANIMAL_TYPE, COUNT(ANIMAL_TYPE) AS count FROM ANIMAL_INS
GROUP BY ANIMAL_TYPE
ORDER BY
CASE ANIMAL_TYPE
WHEN 'Cat' THEN 1
WHEN 'Dog' THEN 2
END;
🔎CASE 칼럼명
WHEN 조건 THEN 결과
...
ELSE 결과
END
동명 동물 수 찾기
<SELECT NAME, COUNT(NAME) AS COUNT FROM ANIMAL_INS
GROUP BY NAME
HAVING COUNT > 1
ORDER BY NAME;
🔎 WHERE vs HAVING
둘다 조건을 주는 명령어이지만,
WHERE 같은 경우는 모든 테이블에 대해 우선 조건을 주고 GROUP BY(그룹화) 할수 있고
HAVING은 GROUP BY 된 이후 그룹화되어진 새로운 테이블에 조건을 줄 수 있습니다.
입양 시각 구하기(1)
SELECT HOUR(DATETIME) HOUR, COUNT(DATETIME) COUNT
FROM ANIMAL_OUTS
GROUP BY HOUR(DATETIME)
HAVING HOUR >= 9 and HOUR <= 19
ORDER BY HOUR(DATETIME);
🔎 HOUR() : 날짜 데이터에서 시간만 추출
YEAR , MONTH, DAY, MINUTE, SECOND 다 가능
입양 시각 구하기(2)
SET @hour := -1;
SELECT (@hour := @hour +1) as HOUR , -- 1씩 증가시켜서 해당 시간 카운트
(SELECT COUNT(*) FROM ANIMAL_OUTS
WHERE HOUR(DATETIME)=@hour) AS COUNT
FROM ANIMAL_OUTS
WHERE @hour < 23;
-- 마지막인 @hour=22가 SELECT절에서 +1되어 23까지 카운트 합니다.
🔎 SET @변수명 := 초기값;
NULL 값 생성, 자료형은 String= 을 비교 연산자로 :=을 대입 연산자로 사용