[JOIN] 있었는데요 없었습니다
·
SQL/프로그래머스
1. 문제 설명 2. 풀이 과정 보호 시작일보다 입양일이 더 빠른 동물의 아이디와 이름 (관리자의 실수!) => INS와 OUTS 테이블이 JOIN 되어야 함 => 보호 시작일(INS.DATETIME)보다 입양일(OUTS.DATETIME)이 더 빠른 동물을 찾아야 하기 때문에 WHERE절에 조건을 걸어주자. 결과는 보호 시작일이 빠른 순으로 조회 => ORDER BY INS.DATETIME 3. 정답 SELECT A.ANIMAL_ID, A.NAME FROM ANIMAL_INS A LEFT JOIN ANIMAL_OUTS B ON A.ANIMAL_ID = B.ANIMAL_ID WHERE A.DATETIME > B.DATETIME ORDER BY A.DATETIME;
[GROUP BY] 동명 동물 수 찾기
·
SQL/프로그래머스
문제 설명 풀이 과정 해당 이름이 쓰인 횟수를 조회한다 => GROUP BY를 통해 이름을 그룹화 한 다음 COUNT 해야한다 두 번 이상 쓰인 이름 => 그룹 함수로 검색 조건을 작성할 때는 WHERE 절을 사용할 수 없어 HAVING절을 사용해야 한다. 이름 없는 동물은 집계에서 제외 => IS NOT NULL을 통해 집계에서 제외시키기 => 하지만 COUNT(name) 과정에서 자동으로 NULL을 제외시킴. 결과는 이름 순으로 조회 => ORDER BY 정답 SELECT name, COUNT(name) AS COUNT FROM animal_ins GROUP BY name HAVING COUNT(name) >=2 ORDER BY name; -- 만약 NOT NULL 조건을 넣었더라면 SELECT na..
[GROUP BY]고양이와 개는 몇 마리 있을까?
·
SQL/프로그래머스
문제 설명 문제 풀이 과정 고양이와 개가 각각 몇 마리인지 조회 => GROUP BY로 그룹을 묶기 => 몇 마리인지 조회하기 위해 고유값인 ANIMAL_ID를 COUNT하기 고양이를 개보다 먼저 조회 => ORDER BY 정답 SELECT animal_type, COUNT(animal_id) FROM animal_ins GROUP BY animal_type ORDER BY animal_type