SQL_(sub,max,min, Group BY)

SUM,MAX,MIN

  1. 최댓값 구하기
SELECT DATETIME
FROM ANIMAL_INS
ORDER BY DATETIME DESC
LIMIT 1

-> 문제에서 의도한 건 이거인 것 같다

SELECT MAX(DATETIME)
FROM ANIMAL_INS
  1. 최솟값 구하기
SELECT MIN(DATETIME)
FROM ANIMAL_INS
  1. 동물 수 구하기
SELECT Count(ANIMAL_ID)
FROM ANIMAL_INS
  1. 중복제거하기
SELECT  COUNT(DISTINCT NAME)
FROM ANIMAL_INS

->COUNT(DISTINCT name) 중복 제거해서 개수세는 거 주의하자

GROUP BY

  1. ★고양이와 개는 몇 마리 있을까★
SELECT ANIMAL_TYPE, count(ANIMAL_TYPE)
FROM ANIMAL_INS
GROUP BY ANIMAL_TYPE

-> GROUP BY는 이럴 때 쓰는거다.

  1. 동명 동물 수 찾기
SELECT NAME, count(NAME)
FROM ANIMAL_INS
GROUP BY NAME Having count(NAME) >=2
  1. 입양 시각 구하기(1)

-> as문은 테이블 또는 테이블의 열에 대해서 이름을 변경할 수 있다.

select HOUR(DATETIME) , Count(DATETIME)
FROM ANIMAL_OUTS
WHERE HOUR(DATETIME) >= 9 and HOUR(DATETIME)<= 19
GROUP BY HOUR(DATETIME)
  1. 입양 시각 구하기(2)
set @hour = -1;
--  hour라는 변수 설정
select
    (@hour := @hour +1) as HOUR,
    (select count(*) from animal_outs where hour(`datetime`) = @hour) as `COUNT`
-- hour와 같은 값에 해당하는 갯수 세서 COUNT에 넣는다
from animal_outs
where @hour < 23
  • 이렇게 푼다는데 어렵다..

참고자료 프로그래머스 코딩테스트 연습 (sql)

0%