-
[SQL] 차집합, LEFT JOIN코딩테스트 2020. 8. 8. 18:59
https://programmers.co.kr/learn/courses/30/lessons/59042
문제
ANIMAL_OUT 테이블에서 ANIMAL_IN테이블에 없는 ANIMAL_ID를 추출하기.
해석
SELECT outs.ANIMAL_ID, outs.NAME FROM ANIMAL_OUTS as outs LEFT JOIN ANIMAL_INS as ins ON outs.ANIMAL_ID = ins.ANIMAL_ID WHERE ins.ANIMAL_ID IS NULL
ANIMAL_OUTS테이블의 ANIMAL_ID와 NAME 컬럼의 데이터 들 중 ANIMAL_INS테이블의 ANIMAL_ID가 같은 데이터만 추출해라. 단, ANIMAL_ID가 NULL일 경우 에만
= ANIAML_OUTS 에만 있는 데이터들만 추출.
SELECT ANIMAL_ID, NAME FROM ANIMAL_OUTS WHERE ANIMAL_ID NOT IN ( SELECT DISTINCT ANIMAL_ID FROM ANIMAL_INS );
ANIMAL_OUTS 테이블에서 ANIMAL_ID와 NAME 컬럼의 데이터를 추출해라.
조건은 ANIMAL ID가 ( SELECT 절)테이블 안에 없을 경우에만,
* DISDINCT :
- 내가 지정한 열(column)의 데이터가 중복될 경우, 중복된 값을 제거하고 한개씩만 나타내고자 할때 사용
있었는데요 없었습니다
https://programmers.co.kr/learn/courses/30/lessons/59043
문제
보호 시작일보다 입양일이 더 빠른 동물의 아이디와 이름을 조회하는 SQL문을 작성해주세요. 이때 결과는 보호 시작일이 빠른 순으로 조회해야합니다.
SELECT outs.ANIMAL_ID, outs.NAME FROM ANIMAL_OUTs as outs LEFT JOIN ANIMAL_INS as ins ON ins.ANIMAL_ID = outs.ANIMAL_ID WHERE outs.DATETIME < ins.DATETIME ORDER BY ins.DATETIME
문제
아직 입양을 못 간 동물 중, 가장 오래 보호소에 있었던 동물 3마리의 이름과 보호 시작일을 조회하는 SQL문을 작성해주세요. 이때 결과는 보호 시작일 순으로 조회해야 합니다.
-- 코드를 입력하세요 SELECT ins.NAME, ins.DATETIME FROM ANIMAL_INS as ins LEFT JOIN ANIMAL_OUTS as outs ON outs.ANIMAL_ID = ins.ANIMAL_ID WHERE outs.ANIMAL_ID IS NULL ORDER BY DATETIME ASC LIMIT 3
아직 입양을 못 간 동물들을 얻기 위해서는 ANIMAL_INS 테이블에서 ANIMAL_OUTS테이블 뺀 차집합 결과를 만들면 된다. 따라서 두 테이블을 LEFT JOIN하고 OUTS테이블의 ANIMAL_ID가 NULL인 것만 추출하면 입양 가지 못한 동물들을 얻을 수 있다. 이를 DATETIME 순으로 정렬하고 3개만 제한하여 추출한다.
문제
보호소에서 중성화 수술을 거친 동물 정보를 알아보려 합니다. 보호소에 들어올 당시에는 중성화1되지 않았지만, 보호소를 나갈 당시에는 중성화된 동물의 아이디와 생물 종, 이름을 조회하는 아이디 순으로 조회하는 SQL 문을 작성해주세요.
-- 코드를 입력하세요 SELECT outs.ANIMAL_ID, outs.ANIMAL_TYPE, outs.NAME FROM ANIMAL_OUTS as outs LEFT JOIN ANIMAL_INS as ins ON outs.ANIMAL_ID = ins.ANIMAL_ID WHERE ins.SEX_UPON_INTAKE LIKE 'Intact%' AND (outs.SEX_UPON_OUTCOME LIKE 'Spayed%' OR outs.SEX_UPON_OUTCOME LIKE 'Neutered%')
'코딩테스트' 카테고리의 다른 글
[SQL] 오랜 기간 보호한 동물(2) (0) 2020.08.17 [프로그래머스 SQL] String ,Date - 중성화 여부 파악하기 (0) 2020.08.10 [프로그래머스 스택/큐] 다리를 지나는 트럭 (0) 2020.08.08 [프로그래머스 스택/큐] 주식가격 (0) 2020.08.07 [백준 2798 /python] 블랙잭 (0) 2020.08.07