새로운 블로그로 이전 작업을 진행하고 있어 포스트가 새로 작성되고 있지 않습니다.

빠른 시일 내에 새로운 블로그로 인사드리겠습니다.

새로운 블로그 : https://unho.vercel.app/

본문 바로가기

알고리즘 문제풀이/SQL23

[HackerRank] African Cities 문제 풀이 과정 1) 문제 이해 및 접근 두 개의 테이블에서 데이터가 필요하여 조인을 이용한 접근 2) 풀이 코드 사용 언어 - MySQL SELECT city.name -- 출력할 열 FROM city -- 테이블 LEFT JOIN country -- JOIN 할 테이블 ON city.countrycode = country.code -- 조인 조건 WHERE country.continent = 'Africa'; -- 데이터 조건 결과 및 학습한 내용 1) 어려웠던 내용 특별히 없습니다. 2) 새롭게 학습한 내용 특별히 없습니다. 문제 링크 - https://www.hackerrank.com/challenges/african-cities/problem?isFullScreen=false African Ci.. 2021. 12. 26.
[프로그래머스] 우유와 요거트가 담긴 장바구니 문제 풀이 과정 1) 문제 이해 및 접근 우유와 요거트를 구매한 장바구니만 필요하므로 우유나 요거트를 구매한 장바구니들만 먼저 조회하여 서브 쿼리 생성 그 중에서 장바구니 아이디를 그룹으로 묶어서 두개를 모두 구입한것을 찾는 방식으로 접근 2) 풀이 코드 사용 언어 - MySQL SELECT CART_ID FROM ( SELECT DISTINCT CART_ID, NAME FROM CART_PRODUCTS WHERE NAME IN ('Milk', 'Yogurt') ) AS cp GROUP BY CART_ID HAVING COUNT(CART_ID) >= 2 ORDER BY CART_ID; 결과 및 학습한 내용 1) 어려웠던 내용 그룹으로 묶고, 우유와 요거트를 하나 이상씩 구입한 장바구니만 출력하도록 하는것.. 2021. 12. 25.
[프로그래머스] 오랜 기간 보호한 동물(1) 문제 풀이 과정 1) 문제 이해 및 접근 두개의 테이블에서 데이터가 필요하여 조인 사용하는 방식으로 접근했습니다. 2) 풀이 코드 사용 언어 - MySQL SELECT ai.NAME, ai.DATETIME -- 출력 열 FROM ANIMAL_INS AS ai -- 기준 테이블 LEFT JOIN ANIMAL_OUTS AS ao -- 조인할 테이블 ON ai.ANIMAL_ID = ao.ANIMAL_ID -- 조인 조건 WHERE ao.DATETIME IS NULL -- 입양 데이터가 없는 데이터들만 ORDER BY ai.DATETIME -- 가장 오래 보호소에 있었던 순서대로 정렬 LIMIT 3; -- 상위 세개의 데이터만 출력 결과 및 학습한 내용 1) 어려웠던 내용 특별히 없습니다. 2) 새롭게 학습한 .. 2021. 12. 24.
[HackerRank] Population Census 문제 풀이 과정 1) 문제 이해 및 접근 두개의 테이블이 있어 JOIN 하여 데이터를 조건에 따라 출력하려고 접근했습니다. 2) 풀이 코드 사용 언어 - MySQL SELECT SUM(city.population) -- 출력 열 (모든 도시들의 인구의 합) FROM city -- 조인할 기준 테이블 JOIN country ON city.countrycode = country.code -- country 테이블과 조인 WHERE country.continent = 'Asia'; -- 대륙이 아시아인 데이터들만 결과 및 학습한 내용 1) 어려웠던 내용 특별히 없습니다. 2) 새롭게 학습한 내용 특별히 없습니다. 문제 링크 - https://www.hackerrank.com/challenges/asian-po.. 2021. 12. 23.
[HackerRank] Weather Observation Station 15 문제 풀이 과정 1) 문제 이해 및 접근 위도 값 중 제일 큰 값의 경도를 구해야 하므로, 위도 크기 순서대로 정렬 후 상위 1개만 출력하는 방식으로 접근했습니다. 2) 풀이 코드 사용 언어 - MySQL SELECT ROUND(long_w, 4) -- 출력할 열 FROM station -- 테이블 WHERE lat_n < 137.2345 -- 위도의 조건 ORDER BY lat_n DESC -- 큰 위도부터 순서대로 정렬 LIMIT 1; -- 가장 큰 위도의 경도이므로, 상위 1개의 결과만 출력 결과 및 학습한 내용 1) 어려웠던 내용 특별히 없습니다. 2) 새롭게 학습한 내용 특별히 없습니다. 문제 링크 - https://www.hackerrank.com/challenges/weather-observ.. 2021. 12. 22.
[HackerRank] Weather Observation Station 13 문제 풀이 과정 1) 문제 이해 및 접근 조건에 해당하는 행들의 위도의 합을 구하고, 소수점 자리를 4째자리까지만 표현해야하므로 sum 함수와 trunc 함수를 이용하는 방법으로 접근했습니다. 2) 풀이 코드 사용 언어 - Oracle SELECT TRUNC(SUM(lat_n), 4) -- 출력하는 열 (위도의 합을 구하고 소수점 4자리에서 자름) FROM station -- 테이블 WHERE lat_n > 38.7880 AND lat_n < 137.2345; -- 위도가 38.7880 보다 크고 137.2345 보다 작은 경우 결과 및 학습한 내용 1) 어려웠던 내용 특별히 없습니다. 2) 새롭게 학습한 내용 특별히 없습니다. 문제 링크 - https://www.hackerrank.com/challen.. 2021. 12. 21.
[프로그래머스] 오랜 기간 보호한 동물(2) 문제 풀이 과정 1) 문제 이해 및 접근 두개 테이블의 각 열을 비교하여 연산이 필요하므로 조인으로 접근하였습니다. 마지막에 상위 2개의 값이 필요하여 조인한 결과를 서브쿼리로 이용했습니다. 2) 풀이 코드 사용 언어 - Oracle SELECT ANIMAL_ID, NAME -- 출력 열 FROM ( SELECT ai.* FROM ANIMAL_INS ai, ANIMAL_OUTS ao WHERE ai.ANIMAL_ID = ao.ANIMAL_ID ORDER BY (ao.DATETIME - ai.DATETIME) DESC ) -- 서브쿼리 (두개의 테이블 조인하여 보호기간이 긴 순서대로 출력) WHERE ROWNUM 2021. 12. 20.
[프로그래머스] 없어진 기록 찾기 문제 풀이 과정 1) 문제 이해 및 접근 보호소에 들어온 동물 ID 리스트를 서브쿼리로 만든 후 그 리스트 안에 입양간 동물의 ID 값이 없는 경우를 찾는 방식으로 접근했습니다. 2) 풀이 코드 사용 언어 - Oracle SELECT ANIMAL_ID, NAME-- 출력 열 FROM ANIMAL_OUTS WHERE ANIMAL_ID NOT IN (-- 보호소에 들어온 동물 ID 리스트 안에 입양된 동물 ID 번호가 없으면 SELECT ANIMAL_ID FROM ANIMAL_INS ) ORDER BY ANIMAL_ID;-- 정렬 결과 및 학습한 내용 1) 어려웠던 내용 특별히 없었습니다. 2) 새롭게 학습한 내용 특별히 없었습니다. 문제 링크 - https://programmers.co.kr/learn/c.. 2021. 12. 19.
[프로그래머스] 헤비 유저가 소유한 장소 문제 풀이 과정 1) 문제 이해 및 접근 해당 테이블에서 유저별로 몇개의 데이터를 가지고 있는지에 따라 출력이 필요하므로 그룹화를 이용하여 접근했습니다. 그룹화를 했을때, 여러 데이터를 모두 출력할 수 없기에 서브쿼리를 이용했습니다. 2) 풀이 코드 사용 언어 - Oracle SELECT * -- 모든 열 출력 FROM PLACES -- 테이블 WHERE HOST_ID IN ( SELECT HOST_ID FROM PLACES GROUP BY HOST_ID HAVING COUNT(HOST_ID) >= 2 ) -- HOST_ID가 서브쿼리 결과에 속해 있는것만 필터링 -- 서브쿼리 => HOST_ID 그룹화를 하여 해당 그룹이 2개 이상의 데이터가 있는것만 필터링 ORDER BY ID; -- ID 순서대로 .. 2021. 12. 18.
[프로그래머스] 있었는데요 없었습니다 문제 풀이 과정 1) 문제 이해 및 접근 두개의 테이블에서 각자의 데이터가 필요하므로 JOIN 이용하였습니다. 일자의 빠른 순서를 비교연산자를 이용하여 구할 수 있으므로 간단한 조건문 이용하였습니다. 2) 풀이 코드 사용 언어 - Oracle SELECT ao.ANIMAL_ID, ao.NAME -- 보여줄 열 FROM ANIMAL_INS ai, ANIMAL_OUTS ao -- 조인할 두개의 테이블 WHERE ai.ANIMAL_ID = ao.ANIMAL_ID -- 두개의 테이블 조인 AND ai.DATETIME > ao.DATETIME -- 보호시작일 > 입양일 (입양일이 더 빠른 경우) ORDER BY ai.DATETIME; -- 보호시작일 빠른순 조회 결과 및 학습한 내용 1) 어려웠던 내용 Oracl.. 2021. 12. 17.
[HackerRank] Type of Triangle 문제 풀이 과정 1) 문제 이해 및 접근 테이블에서 각 열이 삼각형 변의 길이에 해당하는데, 이 변의 길이에 따라 어떠한 삼각형이 만들어지는지 문자로 출력해야함 조건에 따라 출력을 해야하므로 CASE WHEN THEN END 사용해야 함 2) 풀이 코드 사용 언어 - Oracle SELECT CASE WHEN A + B 2021. 12. 16.