[Programmers] 77487번 - 헤비 유저가 소유한 장소 [MySQL]
문제 링크 1. 문제 풀이 서브쿼리를 활용해서 공간을 둘 이상 등록한 사람의 아이디를 찾고 이를 WHERE 절에서 IN 연산자로 비교하는 방식을 활용했다. 2. 쿼리 SELECT * FROM PLACES WHERE HOST_ID IN ( SELECT HOST_ID FROM PLACES GROUP BY HOST...
문제 링크 1. 문제 풀이 서브쿼리를 활용해서 공간을 둘 이상 등록한 사람의 아이디를 찾고 이를 WHERE 절에서 IN 연산자로 비교하는 방식을 활용했다. 2. 쿼리 SELECT * FROM PLACES WHERE HOST_ID IN ( SELECT HOST_ID FROM PLACES GROUP BY HOST...
문제 링크 1. 문제 풀이 셀프 조인을 활용해서 해결했다. 자식 테이블의 부모 아이디와 부모 테이블의 아이디를 기준으로 JOIN 후 부모의 형질을 보유한 레코드만 필터링하면 된다. 형질은 2진수로 표현되어 있어서 비트 AND 연산으로 자식과 부모의 형질의 비트 AND 연산의 결과가 다시 부모 형질이 나오면 자식이 부모 형질을 모두 보유하고 ...
문제 링크 1. 문제 풀이 스칼라 서브쿼리를 이용해서 분화된 연도별 가장 큰 대장균의 크기 - 각 대장균의 크기를 구해줬다. 2. 쿼리 SELECT YEAR(DIFFERENTIATION_DATE) AS YEAR, ((SELECT MAX(SIZE_OF_COLONY) FROM ECOLI_DATA W...
문제 링크 1. 문제 풀이 잡은 물고기의 길이가 10cm 이하일 경우 NULL이므로 IFNULL 함수를 활용해 NULL이면 10cm로 계산하게 해줬다. 물고기의 종류로 그룹핑 후 그룹 평균 길이가 33cm 이상인 그룹만 HAVING 절로 필터링해줬다. 2. 쿼리 SELECT COUNT(*) AS FISH_COUNT, ...
문제 링크 1. 문제 풀이 업그레이드할 수 없는 아이템은 자식 아이템이 없는 아이템으로 ITEM_TREE 테이블에서 PARENT_ITEM_ID에 아이디가 존재하지 않는 아이템들이다. 해당 아이디들을 서브쿼리로 구해서 아이템 아이디가 포함되지 않는지 비교하는 방식으로 해결했다. 2. 쿼리 SELECT ITEM_ID, ITEM_NAM...
문제 링크 1. 문제 풀이 서브쿼리를 활용해서 USED_GOODS_BOARD 테이블에서 가장 조회수가 높은 중고거래 게시물의 아이디를 찾았다. 파일명은 CONCAT 함수를 활용해서 양식에 맞게 출력해줬다. 2. 쿼리 SELECT CONCAT('/home/grep/src/', BOARD_ID, '/', FILE_ID, FILE_NA...
문제 링크 1. 문제 풀이 서브쿼리를 활용해서 USED_GOODS_BOARD 테이블에서 중고 거래 게시물을 3개 이상 등록한 사용자의 아이디들을 찾고 이를 WHERE 절에서 IN 연산자로 필터링해줬다. 양식에 맞춘 출력은 CONCAT, LEFT, RIGHT, SUBSTRING 함수를 활용했다. 2. 쿼리 SELECT USE...
문제 링크 1. 문제 풀이 JOIN 후 WHERE 절에서 자동차의 종류와 10월에 대여한 자동차를 필터링해줬다. 자동차 ID 리스트는 중복이 없어야 해서 DISTINCT를 활용했다. 2. 쿼리 SELECT DISTINCT c.CAR_ID FROM CAR_RENTAL_COMPANY_CAR AS c JOIN CAR_RENTAL_COM...
문제 링크 1. 문제 풀이 2022년 10월 16일에 대여중인지 여부를 판단해야 하는데 BETWEEN 연산자는 해당 범위에 포함되면 1, 아니면 0을 반환하는 점을 활용했다. 2. 쿼리 SELECT CAR_ID, IF(SUM('2022-10-16' BETWEEN START_DATE AND END_DATE) > ...
문제 링크 1. 문제 풀이 세 개의 테이블을 모두 JOIN 후 WHERE 절로 2022년 1월의 도서만 필터링 후 저자와 카테고리를 기준으로 그룹핑을 해주면 된다. 2. 쿼리 SELECT a.AUTHOR_ID, a.AUTHOR_NAME, b.CATEGORY, SUM(b.PRICE * s.SALES) F...