Stay Hungry Stay Foolish

프로그래머스 코딩테스트/SQL 고득점 kit 10

프로그래머스 최솟값 구하기 (SUM,MAX,MIN/Level 2)

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 보호소에 가장 먼저 들어온 동물의 날짜와 시간대를 조회한다. Solution SELECT MIN(DATETIME) FROM ANIMAL_INS;

프로그래머스 입양 시각 구하기(1) (GROUP BY/Level 2)

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 보호소에서 09:00부터 19:59까지, 각 시간대별로 입양이 몇 건이 발생하는 지 조회한다. 이때 결과는 시간대 순으로 정렬한다. 문제 풀이 시간과 건수를 조회해야 하므로 SELECT절에 DATETIME과 집계함수를 이용한다. 날짜 데이터에서 시만 추출할 때 HOUR를 쓰고, 개수를 세는 COUNT 집계함수를 사용한다. FROM절에는 보호소에서 입양을 보낸 동물들의 정보가 담긴 ANIMAL_OUTS를 쓴다. 09:00부터 19:59까지라는 조회하라는 조건이 있으므로, WHERE절을 이용한다. 시간..

Programmers 상위 n개 레코드 (SELECT/Level 1)

문제 설명 보호소에 가장 먼저 들어온 동물의 이름을 조회한다. 문제 풀이 SELECT문에 동물의 이름(NAME)을 적는다. FROM절에 보호소 테이블인 ANIMAL_INS를 적는다. 가장 먼저 들어온 동물을 조회하는 조건이 있으므로, 보호시작일(DATETIME)이 가장 오래된 것을 찾으면 된다. 이때, DATETIME이 최소인 것을 검색하면 되는데 WHERE절에서는 집계함수를 사용할 수 없다. 따라서 서브 쿼리를 이용한다. 서브 쿼리는 하나의 쿼리문에 포함되어 있는 또 다른 쿼리문이다. 사용하는 방법은 WHERE절에서 칼럼명 뒤에 IN을 적어주고 괄호 안에 다른 쿼리문을 적는다. IN은 괄호 내에서 일치하는 것이 있으면 TRUE로 평가된다. Solution SELECT NAME FROM ANIMAL_IN..

Programmers 여러 기준으로 정렬하기 (SELECT/Level 1)

문제 설명 보호소의 모든 동물의 아이디, 이름, 보호 시작일을 이름 순으로 조회한다. 단, 이름이 같은 동물은 보호 시작을 더 늦게 한 동물을 먼저 보여줘야 한다. 문제 풀이 SELECT절에 동물 아이디(ANIMAL_ID), 동물 이름(NAME), 보호 시작일(DATETIME)을 적는다. FROM절에 보호소 테이블인 ANIMAL_INS를 적는다. 이름 순으로 조회해야 하므로, ORDER BY를 이용해 정렬한다. 이때, 이름(NAME)뒤에 오름차순 키워드인 'ASC'은 디폴드 값이므로 생략한다. 같은 이름의 동물일 경우 보호 시작이 더 늦는 동물을 먼저 보여줘야 하기 때문에 DATETIME은 'DESC'로 검색한다. Solution SELECT ANIMAL_ID, NAME, DATETIME FROM ANI..

프로그래머스 동물의 아이디와 이름 (SELECT/Level 1)

문제 설명 보호소의 모든 동물의 아이디와 이름을 ANIMAL_ID순으로 조회한다. 문제 풀이 SELECT절에 동물의 아이디와(ANIMAL_ID)와 이름(NAME)을 적는다. FROM절에 보호소 테이블인 ANIMAL_INS를 적는다. ANIMAL_ID(동물 아이디)순으로 조회해야 하므로, ORDER BY절을 이용한다. 이때, 칼럼명 뒤에 ASC키워드는 디폴드 값이므로 생략한다. Solution SELECT ANIMAL_ID, NAME FROM ANIMAL_INS ORDER BY ANIMAL_ID; ※ORDER BY절을 적지 않고 코드 실행을 해도, 결과가 오름차순으로 정렬이 되어 있다. 그래서 안 적어도 문제는 없지만 되도록이면 적어주는 게 좋다.

프로그래머스 어린 동물 찾기 (SELECT/Level 1)

문제 설명 보호소의 동물 중 젊은 동물의 아이디와 이름을 조회한다. 이때, 결과는 아이디 순으로 보여준다. 문제 풀이 SELECT절에 동물의 아이디(ANIMAL_ID)와 동물의 이름(NAME)을 적는다. FROM 절에 보호소 테이블인 ANIMAL_INS를 적는다. 젊은 동물을 조회하라는 조건이 있으므로, 동물의 상태를 나타내는 INTAKE_CONDITION에서 'Aged'가 아닌 경우만 뽑도록 한다. 따라서, WHERE절에 칼럼명 뒤에 '같지 않다'의 의미를 지닌 ''키워드를 사용하고 그 뒤에 'Aged'문자열을 적어준다. 아이디 순으로 정렬해야 하므로, ORDER BY절을 이용한다. 이때, 칼럼명 뒤에 써야 하는 오름차순 키워드 'ASC'는 디폴트 값이므로 생략한다. Solution SELECT ANI..

프로그래머스 아픈 동물 찾기 (SELECT/Level 1)

문제 설명 보호소에 들어온 동물 중 아픈 동물의 아이디와 이름을 조회한다. 이때 결과는 아이디 순으로 보여준다. 문제 풀이 SELECT절에 동물의 아이디를 나타내는 ANIMAL_ID와, 이름을 나타내는 NAME을 쓴다. FROM절에 보호소 테이블 ANIMAL_INS을 쓴다. 아픈 동물을 조회하라는 조건이 있으므로, WHERE절에 동물의 상태를 나타내는 INTAKE_CONDITION에서 'SICK'만 찾을 수 있도록 한다. 이때, 'SICK'이라는 문자열만 찾으려면 칼럼명 뒤에 '='를 써주고 해당 문자열을 적는다. 아이디 순으로 조회해야 하므로, ORDER BY를 이용해 정렬한다. 이때, 칼럼명 뒤에 ASC키워드는 디폴드 값이므로 생략한다. Solution SELECT ANIMAL_ID, NAME FRO..

프로그래머스 역순 정렬하기 (SELECT/Level 1)

문제 설명 보호소에 들어온 모든 동물의 이름과 보호 시작일을 조회한다. 이때 결과는 ANIMAL_ID 역순으로 보여준다. 문제 풀이 SELECT절에 동물의 이름을 나타내는 ANIMAL_ID와, 보호 시작일을 나타내는 DATETIME을 쓴다. FROM절에 동물의 정보를 담은 테이블인 ANIMAL_INS를 쓴다. ANIMAL_ID(동물 이름)순으로 정렬해야 하므로, 정렬 키워드인 ORDER BY를 이용한다. 이때, 역순으로 보여줘야 하니 칼럼명 뒤에 내림차순을 나타내는 'DESC'를 쓴다. Solution SELECT NAME, DATETIME FROM ANIMAL_INS ORDER BY ANIMAL_ID DESC;

프로그래머스 모든 레코드 조회하기(SELECT/Level 1)

문제 설명 보호소에 들어온 모든 동물의 정보를 ANIMAL_ID순으로 조회한다. 문제풀이 조회하라는 문제이니 SELECT문을 쓴다. 모든 정보를 검색할 때는 SELECT절에 '*'를 쓴다. FROM 절에는 동물들의 정보가 담긴 테이블인 ANIMAL_INS를 쓴다. ANIMAL_ID순으로 조회해야 하므로 ORDER BY를 이용한다. 이때 칼럼명 뒤에 오름차순을 나타내는 ASC를 써야 하는데, 디폴트 값이므로 생략해도 된다. Solution SELECT * FROM ANIMAL_INS ORDER BY ANIMAL_ID;