코딩 테스트 연습 21

[프로그래머스] 없어진 기록 찾기(Oracle, Lv3)

테이블 구조 ANIMAL_INS ANIMAL_OUTS 문제 설명 - ANIMAL_INS 테이블과 ANIMAL_OUTS 테이블을 연결해야 합니다. - 보호소에 들어온 기록이 없는 동물의 ID와 NAME을 출력합니다. - 이때 순서는 아이디 순으로 정렬합니다. 두 개의 테이블 연결 : 테이블 연결 JOIN ~이 없는 : 널(NULL)값 확인 IS NULL 아이디 순으로 정렬 : 정렬 ORDER BY Solution - ANIMAL_INS 테이블과 ANIMAL_OUTS 테이블을 불러옵니다. - ANIMAL_OUTS의 ANIMAL_ID는 ANIMAL_INS의 외래키이므로 서로의 ID를 = 을 사용하여 연결시켜줍니다. - ANIMAL_INS의 데이터가 유실되어 ANIMAL_OUTS이 기준이 되어야 합니다. 그러므..

[프로그래머스] DATETIME에서 DATE로 형 변환(Oracle, Lv2)

테이블 구조 문제 설명 - ANIMAL_INS 테이블의 동물의 아이디, 이름, 들어온 날짜를 조회합니다. - 들어온 날짜는 시각을 제외한 날짜만 출력되어야 합니다. - 이때 순서는 아이디 순으로 정렬합니다. 아이디, 이름, 날짜 조회 :컬럼 ANIMAL_INS, NAME, DATETIME 시각을 제외한 날짜 출력 : 형 변환 TO_CHAR 아이디 순으로 정렬 : 정렬 ORDER BY Solution - ANIMAL_INS 테이블의 아이디와 이름, 날짜를 출력해줍니다. - 형 변환 TO_CHAR()으로 사용하면 DATE형인 들어온 날짜 컬럼인 DATETIME을 원하는 문자 형식으로 변환시켜줄 수 있습니다. YYYY-MM-DD는 각각 연도, 월, 일입니다. - 마지막으로 ORDER BY를 사용하여 아이디 순..

[프로그래머스] 중복 제거하기(Oracle, Lv2)

테이블 구조 문제 설명 - ANIMAL_INS 테이블의 동물의 이름을 조회합니다. - 중복 없이 이름의개수를조회합니다. - 이때 이름이 NULL인 것은 집계하지 않습니다. 동물의 이름 조회 : 컬럼 NAME 중복 없이 : 중복제거 DISTINCT 개수 조회 : 갯수 COUNT() Solution - ANIMAL_INS 테이블의 이름을 중복 제거 DISTINCT를 추가하여 출력합니다. - 중복이 제거된 컬럼의 집계 함수 COUNT()로 감싸주어 개수를 출력해줍니다. - COUNT()는 NULL인 것은 집계하지 않습니다. 출처 https://programmers.co.kr/learn/courses/30/lessons/59408?language=oracle 코딩테스트 연습 - 중복 제거하기 ANIMAL_INS..

[프로그래머스] 중성화 여부 파악하기(Oralce, Lv2)

테이블 구조 문제 설명 - ANIMAL_INS 테이블의 동물의 아이디, 이름, 중성화 여부를 조회합니다. - 중성화 여부(SEX_UPON_INTAKE)에는 Neutered 와 Spayed 그리고 Intact라는 단어를 포함하고 있습니다. - Neutered 와 Spayed 일 경우에는 O를 Intact 일 경우에는 X를 조회해야합니다. - 이때 결과는 아이디 순으로 조회합니다. 동물의 종, 이름, 성별 조회 : 컬럼 ANIMAL_ID, NAME, SEX_UPON_INTAKE 단어를 포함 : 특정 문자 검색 LIKE ~일 경우에는 ~를 : 오라클 IF문 CASE 결과는 시간대 순 : 정렬 ORDER BY Solution - ANIMAL_INS 테이블의 아이디(ANIMAL_ID), 이름(NAME), 성별(S..

[프로그래머스] NULL 처리하기(Oracle, Lv2)

테이블 구조 문제 설명 - ANIMAL_INS 테이블의 동물의 종, 이름, 성별을 조회합니다. - 이때 결과는 시간대 순으로 조회합니다. - 동물의 이름이 없을 경우 "NO name"으로 표시합니다. 동물의 종, 이름, 성별 조회 : 컬럼 ANIMAL_TYPE, NAME, SEX_UPON_INTAKE 결과는 시간대 순 : 정렬 ORDER BY ~이 없을 경우(NULL) ~으로 대체 : 공백 치환 NVL() Solution - ANIMAL_INS 테이블의 타입(ANIMAL_TYPE), 이름(NAME), 성별(SEX_UPON_INTAKE) 컬럼을 조회해줍니다. - ORDER BY를 사용해 ID순으로 정렬시켜 줍니다. - 공백 치환해주는 NVL()을 사용하여, NAME이 NULL 즉 공백일 경우 'NO nam..

[프로그래머스] 입양 시각 구하기(1) (Oracle, Lv2)

테이블 구조 문제 설명 - ANIMAL_OUTS 테이블의 입양시간과 입양 시간대별 건 수를 알아야 합니다. - 입양시간은 09:00부터 19:59까지 입니다. - 이때 결과는 시간대 순으로 조회합니다. 입양시간과 건 수 조회 : 컬럼 HOUR, COUNT 09:00부터 19:59까지 : 범위 BETWEEN 결과는 시간대 순 : 정렬 ORDER BY Solution 1) 서브쿼리 : 5~9 line - SELECT문을 이용하여 ANIMAL_OUTS의 DATETIME을 조회합니다. 이때 TO_CHAR()을 사용하여 날짜의 형태를 원하는 CHAR 타입으로 변환할 수 있습니다. 'HH24'를 기재하면 24시간제로 변환합니다. - 별칭 지정 AS을 사용하여 복잡한 필드명을 HOUR로 지정해줍니다. - 그 후 조건..

[프로그래머스] 이름에 el이 들어가는 동물 찾기(Oracle, Lv2)

테이블 구조 문제 설명 - ANIMAL_INS 테이블의 동물 이름중 'el'이 들어간 개의 아이디와 이름을 조회해야 합니다. - 이름은 대소문자를 구분하지 않습니다. - 이때 결과는 이름 순으로 조회합니다. 'el'이 들어간 : 조건 WHERE 개 : 조건 WHERE 아이디와 이름 조회 : 컬럼 ANIMAL_ID, NAME 대소문자 : 대문자 변환 UPPER(), 소문자 변환 LOWER() 결과는 이름 순 : 정렬 ORDER BY Solution_1 - ANIMAL_INS 테이블의 컬럼 ANIMAL_ID와 NAME을 조회합니다. - 조건절 WHERE을 사용하여 동물의 타입(ANIMAL_TYPE)을 '개(Dog)'를 조회해줍니다. - 대문자 변환 함수 UPPER()를 사용하여 동물의 모든 이름을 대문자로 ..

[프로그래머스] 동명 동물 수 찾기(Oracle, Lv2)

테이블 구조 문제 설명 - ANIMAL_INS 테이블의 동물 이름 중 2번 이상 쓰인 이름과 해당 이름이 쓰인 횟수를 조회 - 이 때 결과는 이름이 없는 동물은 집계에서 제외하며, 결과는 이름 순으로 조회 동물 이름 : 컬럼 NAME 2번 이상 : 조건 WHERE 쓰인 횟수 : 갯수 조회 COUNT() 이름이 없는 동물은 제외 : 필드 유무 확인 IS NOT NULL 결과는 이름 순 : 정렬 ORDER BY Solution ① 서브쿼리(4~7줄) - SELECT문을 이용하여 ANIMAL_INS의 NAME과 갯수 COUNT()를 조회해준다. - 이 때 그룹화 GROUP BY를 이용하면 동물의 이름별 갯수가 몇개인지 집계할 수 있다. ② 전체 쿼리(2~11줄) - 서브쿼리에서 가져온 데이터 중 2번 이상 집..

[프로그래머스] 최솟값 구하기(Oracle, Lv2)

테이블 구조 문제 설명 - ANIMAL_INS 테이블의 입양 시간이 제일 먼저 들어온 동물의 입양 시간을 조회해야 합니다. 입양 시간 : 컬럼 DATETIME 제일 먼저 : 최솟값 MIN() 또는 순번 ROWNUM Solution_1 - SELECT문을 이용하여 ANIMAL_INS 테이블의 필요한 컬럼들을 조회합니다. - MIN()을 사용하여 DATETIME의 최솟값을 가져와주면 제일 먼저 들어온 동물의 입양 시간을 알 수 있습니다. Solution_2 ① 서브쿼리 - SELECT문을 이용하여 ANIMAL_INS의 DATETIME을 가져와줍니다. - ORDER BY절을 사용하여 ANIMAL_INS 테이블을 DATETIME의 순서대로 정렬시켜줍니다. ② 본 쿼리 - 서브쿼리의 데이터를 ROWNUM을 사용하..

[프로그래머스] 루시와 엘라 찾기(Oracle, Lv2)

테이블 구조 문제 설명 - ANIMAL_INS 테이블의 동물의 아이디와 이름, 성별 및 중성화 여부를 조회해야 합니다. - 이 때 결과는 이름이 Lucy, Ella, Pickle, Rogan, Sabrina, Mitty인 동물들을 조회합니다. 동물의 아이디 : 컬럼 ANIMAL_ID 이름 : 컬럼 NAME 성별 및 중성화 여부 : 컬럼 SEX_UPON_INTAKE ~인 동물들 : WHERE 컬럼 IN() Solution - SELECT문을 이용하여 ANIMAL_INS 테이블의 필요한 컬럼들을 조회합니다. - IN()을 사용하여 이름의 맞는 데이터들을 조회해줍니다. 출처 https://programmers.co.kr/learn/courses/30/lessons/59046 코딩테스트 연습 - 루시와 엘라 찾..