본문 바로가기
반응형

SQL186

프로그래머스 보호소에서 중성화한 동물 풀이(MySQL) 사이트명 : 프로그래머스(Programmers) 문제명 : 보호소에서 중성화한 동물 SQL : MySQL 문제를 간단히 요약해보자면 ANIMAL_INS 테이블에서 중성화하지 않은 값(SEX_UPON_INTAKE 부분에 'Intact'가 붙은)만 가져와서 ANIMAL_OUT 테이블에서는 중성화가 된 값 (SEX_UPON_OUTCOME 부분에 'Spayed', 'Neutered')들을 ANIMAL_OUT의 ANIMAL_ID로 정렬해 출력하라는 얘기다 내 풀이방법은 아래와 같은데 서브쿼리를 사용해 ANIMAL_INS 테이블의 중성화하지 않은 값만 가져오는데 LIKE를 활용해 "%Intact%" 로 중성화하지 않은 값들만 가져올 수 있다 이후 바깥에서 ANIMAL_INS(SQ1) 테이블의 ANIMAL_ID와 A.. 2019. 9. 7.
프로그래머스 오랜 기간 보호한 동물(1) 풀이(MySQL) 사이트명 : 프로그래머스(Programmers) 문제명 : 오랜 기간 보호한 동물(1) SQL : MySQL ANIMAL_INS는 아직 보호소에 있는 동물 테이블이고 ANIMAL_OUTS는 입양나간 동물들 테이블인데 입양나가지 않고 보호소에 남아있는 동물들만 조회해야 하는데 여기에 ANIMAL_INS의 DATETIME 기준으로 ORDER BY를 걸어야 하고 모든 행을 조회하는 게 아니라 '3행'만 조회해야 한다!!! 내 풀이방법은 아래와 같은데 먼저 LEFT JOIN과 WHERE 문에 B.ANIMAL_ID IS NULL을 넣어 A에는 있지만 B에는 없는 값만 뽑아내면 총 4행이 나오는데 포인트는 ANIMAL_INS 테이블의 DATETIME 순으로 3행만 뽑아와야 한다는 것이다 ORDER BY A.DATE.. 2019. 9. 7.
프로그래머스 있었는데요 없었습니다 풀이(MySQL) 사이트명 : 프로그래머스(Programmers) 문제명 : 있었는데요 없었습니다 SQL : MySQL 문제 거지같이 만들어 놨는데 아니 그냥 설명하는 표에 한칸 더 파서 이름 한글로 박아놓으면 될거를 그걸 텍스트로 나열을 해서 찾아보게 해?? 아직도 보호 시작일하고 입양일이 헷갈린다 아 진짜 문제 답답하게 만드네 불평은 여기까지 하고 두 테이블의 DATETIME이 다른 만큼 ANIMAL_INS 테이블의 DATETIME > ANIMAL_OUTS 테이블의 DATETIME 이렇게 조회를 하라는 얘기다 마지막으로 ANIMAL_INS 테이블의 DATETIME으로 정렬을 한 후 제출해야 한다 내 풀이방법은 아래와 같은데 보호 시작일하고 입양일이 헷갈리는데 ANIMAL_INS 테이블의 DATETIME > ANIMAL.. 2019. 9. 6.
프로그래머스 없어진 기록 찾기 풀이(MySQL) 사이트명 : 프로그래머스(Programmers) 문제명 : 없어진 기록 찾기 SQL : MySQL 없어진 기록 찾기 문제는 두 테이블에서 ANIMAL_OUTS에만 들어있는 행 중 ANIMAL_ID와 NAME을 ANIAML_ID 순으로 출력하라는 내용인데 내 풀이방법은 아래와 같다 이 문제를 풀기 위해서는 JOIN에 대해서 알아야 하는데 JOIN이란? 두 테이블을 합치는 것인데 여러 JOIN이 있지만 이 내용은 출근해야 되니 차후 설명하고 LEFT JOIN은 다음과 같다 여기서 JOIN 후에 행이 엄청나게 많이 생기는데 기존에 ANIMAL_INS 테이블에서 없었던 내용들은 ID가 NULL 처리되어 들어오므로 WHERE 절에 IS NULL을 추가하면 ANIMAL_OUTS에는 있지만 ANIMAL_INS에는 없.. 2019. 9. 6.
프로그래머스 동명 동물 수 찾기 풀이(MySQL) 사이트명 : 프로그래머스(Programmers) 문제명 : 동명 동물 수 찾기 SQL : MySQL ANIMAL_INS 테이블에서 2번 이상 쓰인 NAME과 COUNT를 가져오는데 COUNT는 ANIMAL_INS에 존재하는 컬럼명이 아닌 COUNT(컬럼명)을 해서 갯수를 가져오고 이름을 COUNT(컬럼명) AS COUNT 이렇게 주라는 거다 그리고 이름이 2번 이상 쓰여야 한다고 했으니 조건절에 이걸 추가해줘야 한다 내 풀이방법은 아래와 같은데 먼저 ANIMAL_INS 테이블에서 NAME과 NAME을 COUNT 한 갯수를 구한뒤 COUNT로 명명한다 COUNT를 사용하기 위해서 GROUP BY NAME을 해 줘야 한다 이후 이 쿼리 내용을 괄호로 감싸야 하는데 WHERE 절에 COUNT(NAME)을 바로.. 2019. 9. 5.
프로그래머스 고양이와 개는 몇 마리 있을까 풀이(MySQL) 사이트명 : 프로그래머스(Programmers) 문제명 : 고양이와 개는 몇 마리 있을까 SQL : MySQL ANIMAL_INS 테이블에서 ANIMAL_TYPE 컬럼과 Cat, Dog 갯수를 count 컬럼으로 해서 가져와야 하는데 문제는 어떻게 가져오느냐 하는 것이다 내 풀이방법은 아래와 같은데 COUNT(컬럼)을 이용해 갯수를 구해오고 AS를 넣어 컬럼명을 COUNT로 정해준다 COUNT는 GROUP BY가 있어야 사용 가능한데 GROUP BY란? 컬럼 값이 같은 것 끼리 하나로 묶어준다는 거다 ANIMAL_TYPE으로 묶어놓으니 Cat과 Dog이 몇마린지 정리된 것이 보인다 마지막으로 프로그래머스에서 바로 사용 가능한 답안 코드는 아래와 같다 SELECT ANIMAL_TYPE, COUNT(ANIM.. 2019. 9. 5.

반응형