본문 바로가기

: IT/프로그래머스

(6)
[코딩테스트] MySQL > SELECT 문 (6) 1. 오랜 기간 보호한 동물(2) SELECT O.ANIMAL_ID, O.NAME FROM ANIMAL_OUTS O LEFT JOIN ANIMAL_INS I ON O.ANIMAL_ID = I.ANIMAL_ID ORDER BY DATEDIFF(O.DATETIME, I.DATETIME) DESC LIMIT 2 - DATEDIFF(A,B) 두 날짜 사이 일수를 구하는 함수 - 두 날짜 사이의 간격이 긴 순서 중 상위 2개를 조회한다 2. DATETIME에서 DATE로 형 변환 SELECT ANIMAL_ID, NAME, DATE_FORMAT(DATETIME, '%Y-%m-%d') AS '날짜' FROM ANIMAL_INS ORDER BY ANIMAL_ID ASC - DATE_FORMAT(A, '포맷') : 날짜..
[코딩테스트] MySQL > SELECT 문 (5) 1. 루시와 엘라 찾기, 문자열 검색 SELECT ANIMAL_ID, NAME, SEX_UPON_INTAKE FROM ANIMAL_INS WHERE NAME IN ('Lucy', 'Ella', 'Pickle', 'Rogan', 'Sabrina', 'Mitty') - NAME 컬럼의 값이 Lucy, Ella, Pickle, Rogan, Sabrina, Mitty인 값들을 조회한다 2. 이름에 el이 들어가는 동물 찾기 SELECT ANIMAL_ID, NAME FROM ANIMAL_INS WHERE LOWER(NAME) LIKE '%el%' AND ANIMAL_TYPE = 'Dog' ORDER BY NAME - 문자열을 대문자로 바꿔주는 함수 UPPER() / 문자열을 소문자로 바꿔주는 함수 LOWER - ..
[코딩테스트] MySQL > SELECT 문 (4) 1. 이름이 없는 동물의 아이디 SELECT ANIMAL_ID FROM ANIMAL_INS WHERE NAME IS NULL ORDER BY ANIMAL_ID - ANIMAL_INS 테이블에서 NAME 컬럼 값이 없는 값을 조회한다 - AMIMAL_ID를 오름차순(ASC)으로 정렬한다 2. 이름이 있는 동물의 아이디 SELECT ANIMAL_ID FROM ANIMAL_INS WHERE NAME IS NOT NULL ORDER BY ANIMAL_ID - ANIMAL_INS 테이블에서 NAME 컬럼 값이 있는 값을 조회한다 - ANIMAL_ID를 오름차순(ASC)으로 정렬한다 3. NULL 처리하기 SELECT ANIMAL_TYPE, IFNULL(NAME, "No name") AS 'NAME', SEX_UP..
[코딩테스트] MySQL > SELECT 문 (3) 1. GROUP BY > 동명 동물 수 찾기 SELECT NAME, COUNT(ANIMAL_ID) as 'COUNT' FROM ANIMAL_INS WHERE NAME IS NOT NULL GROUP BY NAME HAVING COUNT(ANIMAL_ID) >= 2 ORDER BY NAME ASC - 이름(NAME)으로 그룹을 나누고, COUNT함수를 이용해서 동명 동물의 수를 조회한다 - HAVING 절에 같은 이름의 동물 수가 2개 이상으로 조건을 추가한다 - 이름 오름차순(ASC)으로 정렬한다 2. GROUP BY > 입양 시각 구하기(1) SELECT DATE_FORMAT(DATETIME, '%H') AS 'HOUR', COUNT(ANIMAL_ID) AS 'COUNT' FROM ANIMAL_OUTS..
[코딩테스트] MySQL > SELECT 문 (2) 1. 여러 기준으로 정렬하기 SELECT ANIMAL_ID, NAME, DATETIME FROM ANIMAL_INS ORDER BY NAME, DATETIME DESC - ANIMAL_INS 테이블에서 ANIMAL_ID, NAME, DATETIME 컬럼을 조회한다 - NAME 컬럼을 오름차 순으로 정렬하고, NAME이 동일할 경우 DATETIME 컬럼을 내림차 순으로 정렬한다 2. 상위 N개 레코드를 조회하기 SELECT NAME FROM ANIMAL_INS ORDER BY DATETIME LIMIT 1 - ANIMAL_INS 테이블에서 NAME 컬럼을 조회한다 - DATETIME이 가장 오래된 날짜순으로 정렬한다 (오름차순) - 상위 1개만 선택한다 3. 최댓값 구하기 SELECT MAX(DATETIM..
[코딩테스트] MySQL > SELECT 문 (1) 1. 모든 레코드 조회 SELECT * FROM ANIMAL_INS ORDER BY ANIMAL_ID ASC - ANIMAL_INS 테이블에서 모든 레코드를 조회한다 - ANIMAL_ID 컬럼을 오름차순(ASC)으로 정렬한다 2. 역순 정렬하기 SELECT NAME, DATETIME FROM ANIMAL_INS ORDER BY ANIMAL_ID DESC - ANIMAL_INS 테이블에서 NAME, DATETIME 컬럼을 조회한다 - ANIMAL_ID 컬럼을 내림차순(DESC)으로 정렬한다 3. WHERE 조건절 (=), 검색 값과 같은 조건을 검색 SELECT ANIMAL_ID, NAME FROM ANIMAL_INS WHERE INTAKE_CONDITION = 'Sick' ORDER BY ANIMAL_I..