프로그래머스 SQL
-
없어진 기록 찾기 | ORACLE프로그래머스 SQL 2021. 11. 30. 21:30
따라서 SQL문을 실행하면 다음과 같이 나와야 합니다. ANIMAL_ID NAME A349733 Allie A349990 Spice SELECT B.ANIMAL_ID, B.NAME FROM ANIMAL_INS A, ANIMAL_OUTS B WHERE 1=1 AND A.ANIMAL_ID (+)=B.ANIMAL_ID AND A.ANIMAL_ID IS NULL ORDER BY B.ANIMAL_ID; => OUTER JOIN을 이용하여 문제를 해결하였습니다. => A에는 없고, B에는 있는 튜플을 찾아야 합니다. => A의 ANIMAL_ID가 없는 녀석을 걸러주면 원하는 값을 구할 수 있습니다. => ORDER BY를 사용하여 데이터를 정렬합니다.
-
있었는데요 없었습니다 | ORACLE | 오라클프로그래머스 SQL 2021. 11. 29. 21:57
=> left outer 조인 혹은 INNER JOIN을 해야 하는 문제입니다. => INNER JOIN을 한 이후에 B 테이블에 있는 값들로 가져오면 틀렸다고 나옵니다. (아마도 B 테이블에 빈칸이 있거나, 정합성에 문제가 있나 봅니다.) SELECT A.ANIMAL_ID, A.NAME FROM ANIMAL_INS A, ANIMAL_OUTS B WHERE 1=1 AND A.ANIMAL_ID = B.ANIMAL_ID AND A.DATETIME > B.DATETIME ORDER BY A.datetime ;
-
입양시각 구하기(2)프로그래머스 SQL 2021. 11. 27. 18:40
예시 SQL문을 실행하면 다음과 같이 나와야 합니다. HOUR COUNT 0 0 1 0 2 0 3 0 4 0 5 0 6 0 7 3 8 1 9 1 10 2 11 13 12 10 13 14 14 9 15 7 16 10 17 12 18 16 19 2 20 0 21 0 22 0 23 0 SELECT HOUR, COUNT(O.DATETIME) AS COUNT FROM ( SELECT LEVEL-1 AS HOUR FROM DUAL CONNECT BY LEVEL LEFT JOIN 하는 방법을 알아야 풀 수 있는 문제입니다. => DUMMY TABLE에서 1~23까지 비어있는 테이블을 작성한 후, ANIMAL_OUTS에 있는 시간 값들과 LEFT JOIN을 걸어 표현할 수 있습니다. ** MYSQL과 ORACLE의 문..