본문 바로가기

알고리즘/SQL

(27)
[프로그래머스] Level 3. DATETIME에서 DATE로 형 변환 문제 풀이 SELECT ANIMAL_ID, NAME, DATE_FORMAT(`DATETIME`, '%Y-%m-%d') AS '날짜' FROM ANIMAL_INS ORDER BY ANIMAL_ID; DATETIME에 있는 변수들을 DATE_FORMAT 을 사용하여 형태를 바꿔주었다. 출처 programmers.co.kr/learn/courses/30/lessons/59414 코딩테스트 연습 - DATETIME에서 DATE로 형 변환 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물..
[프로그래머스] Level 3. 오랜 기간 보호한 동물(2) 문제 풀이 SELECT OUTS.ANIMAL_ID, OUTS.NAME FROM ANIMAL_INS AS INS INNER JOIN ANIMAL_OUTS AS OUTS ON INS.ANIMAL_ID = OUTS.ANIMAL_ID ORDER BY OUTS.DATETIME - INS.DATETIME DESC LIMIT 2; ORDER BY 에 정렬하기 원하는 값을 넣어주고 작아지는 순으로 출력한 뒤에 LIMIT 2를 붙이면 된다. 출처 programmers.co.kr/learn/courses/30/lessons/59411 코딩테스트 연습 - 오랜 기간 보호한 동물(2) ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIM..
[프로그래머스] Level 2. 중성화 여부 파악하기 문제 풀이 SELECT ANIMAL_ID, NAME, CASE WHEN SEX_UPON_INTAKE LIKE 'Neutered%' THEN 'O' WHEN SEX_UPON_INTAKE LIKE 'Spayed%' THEN 'O' ELSE 'X' END AS '중성화' FROM ANIMAL_INS ORDER BY ANIMAL_ID ASC; case 문을 사용하여 문제를 해결하였다. case ~ when ~ then 출처 programmers.co.kr/learn/courses/30/lessons/59409 코딩테스트 연습 - 중성화 여부 파악하기 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMA..
[프로그래머스] Level 2. 이름에 el이 들어가는 동물 찾기 문제 풀이 SELECT ANIMAL_ID, NAME FROM ANIMAL_INS WHERE NAME LIKE '%EL%' AND ANIMAL_TYPE = 'Dog' ORDER BY NAME; LIKE를 통해서 부분 일치 칼럼을 찾을 수 있다. %는 글자 숫자를 정해주지 않는다. A% : A로 시작하는 문자 %A : A로 끝나는 문자 %A% : A를 포함하는 문자 _는 글자 숫자를 정해준다. A_ : A로 시작하는 두글자 문자 찾기 [^A] : 첫문자가 A가 아닌 모든 문자열 찾기 [ABC] , [A-C] : 첫문자가 A또는 B또는 C인 문자열 찾기 출처 programmers.co.kr/learn/courses/30/lessons/59047 코딩테스트 연습 - 이름에 el이 들어가는 동물 찾기 ANIMAL..
[프로그래머스] Level 2. 루시와 엘라 찾기 문제 풀이 SELECT ANIMAL_ID, NAME, SEX_UPON_INTAKE FROM ANIMAL_INS WHERE NAME = 'Lucy' OR NAME = 'Ella' OR NAME = 'Pickle' OR NAME = 'Rogan' OR NAME = 'Sabrina' OR NAME = 'Mitty' ORDER BY ANIMAL_ID ASC; NAME이 여러개일 때는 NAME = '??' OR NAME = "???" 이런 식으로 명시 해주어야 한다. 출처 programmers.co.kr/learn/courses/30/lessons/59046 코딩테스트 연습 - 루시와 엘라 찾기 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 ..
[프로그래머스] Level 4. 보호소에서 중성화한 동물 문제 풀이 SELECT OUTS.ANIMAL_ID, OUTS.ANIMAL_TYPE, OUTS.NAME FROM ANIMAL_INS AS INS INNER JOIN ANIMAL_OUTS AS OUTS ON INS.ANIMAL_ID = OUTS.ANIMAL_ID WHERE (INS.SEX_UPON_INTAKE = 'Intact Male' and OUTS.SEX_UPON_OUTCOME = 'Neutered Male') or (INS.SEX_UPON_INTAKE = 'Intact Female' and OUTS.SEX_UPON_OUTCOME = 'Spayed Female'); 지금까지 문제와 비슷하다. WHERE 을 통해서 조건을 달아서 문제 해결. 출처 programmers.co.kr/learn/courses/..
[프로그래머스] Level 3. 오랜 기간 보호한 동물(1) 문제 풀이 SELECT INS.NAME, INS.DATETIME FROM ANIMAL_INS AS INS LEFT JOIN ANIMAL_OUTS AS OUTS ON INS.ANIMAL_ID = OUTS.ANIMAL_ID WHERE OUTS.NAME IS NULL AND INS.NAME IS NOT NULL ORDER BY INS.DATETIME ASC LIMIT 3 ; 지금까지와 비슷한 문제인데 이번엔 LEFT JOIN을 통해서 INS 테이블을 남긴다. 이번에도 차집합 조건이고 차집합 후에 남는 NULL 값도 없애준다. DATETIME으로 순서를 정렬해주고 LIMIT 3을 통해서 3개까지면 값을 나타내준다. 출처 programmers.co.kr/learn/courses/30/lessons/59044 코딩..
[프로그래머스] Level 3. 있었는데요 없었습니다 문제 풀이 SELECT OUTS.ANIMAL_ID, OUTS.NAME FROM ANIMAL_INS AS INS INNER JOIN ANIMAL_OUTS AS OUTS ON INS.ANIMAL_ID = OUTS.ANIMAL_ID WHERE INS.DATETIME > OUTS.DATETIME ORDER BY INS.DATETIME ASC; 없어진 기록 찾기 문제와 비슷한 문제 이번엔 INNER JOIN을 통해서 공통된 것을 찾기로 하였다. 보호 시작일보다 입양일이 더 빠른 것을 찾아야 하므로 INS.DATETIME > OUTS.DATETIME 으로 두었다. ORDER BY 조건이 주어졌으므로 명시하였다. 출처 programmers.co.kr/learn/courses/30/lessons/59043 코딩테스트 ..