programmers(13)
-
[ 프로그래머스 ] SQL DATETIME에서 DATE로 형 변환 String, Date
문제 설명 문제 풀이 SELECT ANIMAL_ID, NAME, DATE_FORMAT(DATETIME, '%Y-%m-%d') as '날짜' FROM ANIMAL_INS ORDER BY ANIMAL_ID SQL마다 날짜에 대한 데이터 타입이 있고, 날짜를 다루는 함수들이 있습니다. MySQL에서는 DATE_FORMAT()이라는 함수가 있는데 DATE_FORMAT(값, 형식) 이런 식으로 쓰면 됩니다. SUBSTR 함수도 사용이 가능하네요. 하지만 속도 면에서 DATE 타입에는 DATE 함수를 쓰는 게 빠를 겁니다. DATE_FORMAT()에 대한 자세한 사항은 다음을 참고해주세요. http://tcpschool.com/mysql/mysql_builtInFunction_dateTime 코딩교육 티씨피스쿨 4..
2019.11.11 -
[ 프로그래머스 ] SQL 오랜 기간 보호한 동물(2) String, Date
문제 설명 문제 풀이 SELECT A.ANIMAL_ID, A.NAME FROM ANIMAL_INS A, ANIMAL_OUTS B WHERE A.ANIMAL_ID = B.ANIMAL_ID ORDER BY B.DATETIME-A.DATETIME DESC LIMIT 2 보호기간이 가장 긴 동물은 입양을 간 날짜에서 보호가 시작된 날짜를 빼면 그만큼 보호소에 있었던 것이 됩니다. DATE 타입 끼리는 기본적인 연산이 가능하므로 ORDER BY 절에서 보시면 B.DATETIME-A.DATETIME을 한 뒤 그 값들을 내림차순으로 정렬하였습니다. 그렇게 되면 보호소에 가장 오래 있었던 동물이 맨 위로 오게 되고 두 마리만 출력하면 되므로 LIMIT 2 이렇게 마지막에 썼습니다. 출처 : https://program..
2019.11.11 -
[ 프로그래머스 ] SQL 중성화 여부 파악하기 String, Date
문제 설명 문제 풀이 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 ORDER BY ANIMAL_ID CASE 구문은 삼항연산자와 비슷합니다. WHEN 절에 조건을 넣고 THEN 절에는 참일 경우 출력 내용 ELSE 절에는 거짓일 경우 출력 내용을 입력하시면 됩니다. 마지막에는 END로 닫아주시면 됩니다. Neutered 또는 Spayed 글자가 들어가면 중성화가 된 동물이므로 WHEN 절에 해당 조건을 넣었습니다. 출처 : https://programmers.co.kr/learn/co..
2019.11.11 -
[ 프로그래머스 ] SQL 이름이 있는 동물의 아이디 IS NULL
문제 설명 문제 풀이 SELECT ANIMAL_ID FROM ANIMAL_INS WHERE NAME LIKE '%' LIKE 절에 '%' 만 썼으니 null이 아닌 1자리 이상 문자가 들어가 있으면 조건이 충족되어 출력됩니다. 출처 : https://programmers.co.kr/learn/courses/30/lessons/59407 코딩테스트 연습 - 이름이 있는 동물의 아이디 | 프로그래머스 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일..
2019.11.08 -
[ 프로그래머스 ] SQL NULL 처리하기 IS NULL
문제 설명 문제 풀이 SELECT ANIMAL_TYPE, IFNULL(NAME, 'No name'), SEX_UPON_INTAKE FROM ANIMAL_INS ORDER BY ANIMAL_ID IFNULL(컬럼명, 처리값)은 해당 속성 값이 NULL일 경우 처리값으로 출력하겠다는 의미입니다. 따라서 위에 구문을 보시면 NAME의 값이 NULL일 경우 No name으로 출력하겠다는 의미가 됩니다. 출처 : https://programmers.co.kr/learn/courses/30/lessons/59410 코딩테스트 연습 - NULL 처리하기 | 프로그래머스 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_I..
2019.11.04 -
[ 프로그래머스 ] SQL 입양 시각 구하기(2) GROUP BY
문제 설명 문제 풀이 set @hour = -1; select (@hour := @hour +1) as HOUR, (select count(*) from animal_outs where hour(datetime) = @hour) as COUNT from animal_outs where @hour < 23 출처 : https://programmers.co.kr/learn/courses/30/lessons/59413 코딩테스트 연습 - 입양 시각 구하기(2) | 프로그래머스 ANIMAL_OUTS 테이블은 동물 보호소에서 입양 보낸 동물의 정보를 담은 테이블입니다. ANIMAL_OUTS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, NAME, SEX_UPON..
2019.10.30