본문 바로가기

SEO's Study94

프로그래머스 코딩테스트 :: 있었는데요 없었습니다(MySQL) [접속 사이트] 프로그래머스 programmers.co.kr [문제] ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블이고, ANIMAL_OUTS 테이블은 동물 보호소에서 입양 보낸 정보를 담은 테이블이다. 관리자의 실수로 일부 동물의 입양일이 잘못 입력되었습니다. 보호 시작일보다 입양일이 더 빠른 동물의 아이디와 이름을 조회하는 SQL문을 작성하시오. 단, 결과는 보호 시작일이 빠른 순으로 조회해야 합니다. [나의 풀이] 앞선 문제 풀이 '없어진 기록찾기'와 같이 2개의 테이블을 활용해 문제를 푸는 내용으로 JOIN을 해보려 했으나 원하는 결과 값이 나오지 않았습니다. FULL OUTER JOIN을 통해 전체 데이터 중 ANIMAL_INS.DATETIME > ANIAML_OU.. 2020. 9. 20.
프로그래머스 코딩테스트 :: 없어진 기록찾기(MySQL) [접속 사이트] 프로그래머스 programmers.co.kr [문제] ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블이고, ANIMAL_OUTS 테이블은 동물 보호소에서 입양 보낸 정보를 담은 테이블이다. 천재지변으로 보호소에 들어온 기록이 유실되었다. 이때 유실된 동물의 ID와 이름을 SQL문으로 작성하시오. 단, ID 기준으로 정렬되어야 한다. 그동안 하나의 테이블로 정보를 추출해왔다면, 이번 문제부터는 2개의 테이블을 연관지어 비교해야만 결과 값을 구할 수 있습니다. 이렇게 두 개의 테이블을 연관짓는 것을 'JOIN 한다'라고 표현하는데, 이 JOIN의 종류부터 공부해야할 필요가 있습니다. JOIN의 종류는 아주 다양하게 있지만, 여기서는 INNER JOIN, OUTER.. 2020. 9. 20.
프로그래머스 코딩테스트 :: 이름이 없는 동물의 ID 구하기(MySQL) [접속 사이트] 프로그래머스 programmers.co.kr [문제] ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블이다. 보호소에 들어온 동물 중, 이름이 없는 채로 들어온 동물의 ID를 조회하는 SQL문을 작성하시오. 단, ID는 오름차순으로 정렬되어야 한다. [나의 풀이] 동물의 이름이 NULL 값이 있는 데이터를 조회하기 위해서 NAME IS NULL or ' ' 조건을 넣어줍니다. NULLIF 함수를 사용해 NULLIF(NAME, ' ') IS NULL 조건으로 사용해도 무관한 것 같아요. [참고] NULLIF(NAME, ' ') IS NULL -> NAME 값이 ' '(공백)이면 NULL을 입력하고, 아니면 NAME의 값을 출력한다. 즉, NULLIF(A, B) I.. 2020. 9. 19.
프로그래머스 코딩테스트 :: 입양 시각 구하기2 (MySQL) [접속 사이트] 프로그래머스 programmers.co.kr [문제] ANIMAL_OUTS 테이블은 동물 보호소에서 입양보낸 동물의 정보를 담은 테이블이다. 0시부터 23시까지, 각 시간대별로 입양이 몇 건이나 발생했는지 조회하는 SQL문을 작성하시오. 단, 결과는 시간대 순으로 정렬해야합니다. [나의 풀이] 언뜻보면 입양 시각 구하기1과 같이 시간대 별 입양 건수를 count하는 일이지만, 테이블 내 없는 시각이 존재했다. 입양 시각만을 점검해보면 0시~6시, 20~23시 데이터가 없다.. 고로 없는 시간을 생성해줘야한다 ㅠㅠ 없는 시간을 생성하기 위해 별도의 로컬변수를 선언해준다. 나는 @TIME으로 로컬변수를 설정하겠다. 그리고 0~23시 데이터 추출을 위해 '@TIME := @TIME+1' 식을 .. 2020. 9. 19.
프로그래머스 코딩테스트 :: 입양 시각 구하기1(MySQL) [접속 사이트] 프로그래머스 programmers.co.kr [문제] ANIMAL_OUTS 테이블은 동물 보호소에서 입양보낸 동물의 정보를 담은 테이블이다. 09:00부터 19:59까지 각 시간대별로 입양이 몇 건이나 발생했는지 조회하는 SQL문을 작성하시오. 단, 결과는 시간대 순으로 정렬해야 함 [나의 풀이] 시간이 모두 노출되는 DATETIME에서 시간대를 추출하는 HOUR함수를 활용하기로 했다. 그리고 HOUR >=9 and HOUR < 20 과 같이 시간 제한을 입력한다. 시간을 순차적으로 활용하기 위해서는 Order by 컬럼명 ASC (ASC는 기본으로 설정되는 값이지만 공부를 위해 작성함) -- HOUR(DATETIME)의 변수 명을 HOUR로 설정 SELECT HOUR(DATETIME) .. 2020. 9. 18.
프로그래머스 코딩테스트 :: 동명 동물 수 찾기 [접속 사이트] 프로그래머스 programmers.co.kr [문제] ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블이다. 동물 보호소에 들어온 동물 이름 중 두 번 이상 쓰인 이름과 해당 이름이 쓰인 횟수를 조회하는 SQL문을 작성하시오. 단, 결과는 이름이 없는 동물은 집계에서 제외하며, 이름 순으로 조회해주세요. [나의 풀이] NAME을 count하되 count한 값을 변수 num에 생성, num이 1보다 큰 값을 노출시킨다. SELECT NAME, count(*) as num from ANIMAL_INS Group by NAME HAVING num > 1 특정 문자열 제외 및 정렬은 이전 장에서 했으니 생략하겠음 SELECT NAME, COUNT(*) as num fr.. 2020. 9. 18.
프로그래머스 코딩테스트 :: 고양이와 개는 몇 마리 있을까 [접속 사이트] 프로그래머스 programmers.co.kr [문제] ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블이다. 동물보호소에 들어온 고양이와 개가 각각 몇마리인지 SQL문을 작성하시오. 단, 고양이보다 개를 먼저 조회하시오! [나의 풀이] count함수를 써서 ANIMAL_TYPE의 수를 구하고, Group by 함수로 컬럼이 같은 것 끼리 묶음 단, 고양이보다 개를 먼저 조회하기 위해 Group by 내부 정렬이 필요하므로 Group by '컬럼명' Order by '컬럼명' DESC 사용 SELECT ANIMAL_TYPE, count(ANIMAL_TYPE) from ANIMAL_INS Group by ANIMAL_TYPE Order by NAME DESC [실행.. 2020. 9. 18.
프로그래머스 코딩테스트 :: MySQL 동물 수 구하기 / 중복제거 [접속 사이트] 프로그래머스 programmers.co.kr [문제1] ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블이다. 동물 보호소에 동물 몇마리가 들어왔는지 조회하는 SQL문을 작성하시오. [나의 풀이 - 동물 수 구하기] 동물이 몇마리가 들어왔는지 알기 위해서는 ANIMAL_ID의 개수를 세면 되겠죠. 생물의 종이나 보호 시작일 등의 개수를 세도 되겠지만, 가장 먼저 제공되는 동물의 ID를 기준으로 count 했습니다. SELECT count(ANIMAL_ID) from ANIMAL_INS [실행 결과] [문제2] ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블이다. 동물보호소에 들어온 동물의 이름은 몇개인지 조회하는 SQL문을 작성하시오.. 2020. 9. 18.
프로그래머스 코딩테스트 :: MySQL 최댓값/최솟값 구하기 [접속 사이트] 프로그래머스 programmers.co.kr [문제] ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블이다. 가장 최근에 들어온 동물은 언제 들어왔는지 조회하는 SQL문을 작성하시오. [나의 풀이-최댓값 구하기] 최근 들어온 동물의 데이터는 DATETIME(보호 시작일)으로 기록이 되므로 DATETIME으로 정렬을하고자 했습니다. 그리고 지정된 컬럼을 정렬하기 위해서는 ORDER BY를 활용하면 됩니다. ASC(오름차순), DESC(내림차순) 두 가지 정렬 방법이 있고 기본은 ASC(오름차준) 정렬로 이루어집니다. 금번에는 가장 최근에 동물 보호소에 들어온 날짜를 뽑아야하기때문에, 내림차순인 DESC 정렬을 사용하겠습니다. SELECT DATETIME from .. 2020. 9. 17.