분류 전체보기77 프로그래머스 SELECT - 상위 n개 레코드 * ORACLE 에는 LIMIT가 없다!! 대신 ROWNUM을 이용해야한다. -- ORACLE SELECT NAME FROM ( SELECT NAME FROM ANIMAL_INS ORDER BY DATETIME ) WHERE ROWNUM = 1 * MySQL은 LIMIT로 간단히 해결 가능. -- MySQL SELECT NAME FROM ANIMAL_INS ORDER BY DATETIME LIMIT 1 2022. 4. 4. 프로그래머스 JOIN (4) - 보호소에서 중성화한 동물 들어올 때는 중성화가 안되어있지만, 나갈때는 중성화가 되어있는 동물을 구해야 한다. 1) INNER JOIN을 이용해 ANIMAL_INS와 ANIMAL_OUTS의 모든 동물을 구한다. SELECT I.ANIMAL_ID, I.ANIMAL_TYPE, I.NAME FROM ANIMAL_INS I INNER JOIN ANIMAL_OUTS O ON I.ANIMAL_ID = O.ANIMAL_ID 2) 이때 조건을 걸어 들어올때는 중성화가 되어있지 않는(Intact~), 나갈 때는 중성화가 되어있는(Spayed~, Neutered~) 동물을 찾는다. * 문자열이 포함되어있는 데이터 구하기 : LIKE SELECT I.ANIMAL_ID, I.ANIMAL_TYPE, I.NAME FROM ANIMAL_INS I INNER.. 2022. 4. 3. 프로그래머스 JOIN (3) - 오랜 기간 보호한 동물(1) 입양을 가지 못한 동물 중 가장 오래 보호소에 있었던 동물 3마리를 구해야 한다. 조건을 하나씩 살펴보면.. 1) 입양을 가지 못한 동물을 구한다. 즉, ANIMAL_INS에는 있지만 ANIMAL_OUTS에는 없는 동물을 구해야 한다. SELECT I.NAME, I.DATETIME FROM ANIMAL_INS I LEFT OUTER JOIN ANIMAL_OUTS O ON I.ANIMAL_ID = O.ANIMAL_ID WHERE O.ANIMAL_ID IS NULL -- ANIMAL_OUTS에는 없는(NULL) 동물 2) 가장 오래 보호소에 있었던 동물 3마리, 즉 보호 시작일이 빠른 동물 3마리를 구해야 한다. 따라서, 보호 시작일로 정렬을 한다. SELECT I.NAME, I.DATETIME FROM A.. 2022. 4. 3. 프로그래머스 JOIN (2) - 있었는데요 없었습니다 보호 시작일보다 입양일이 더 빠른 동물의 아이디와 이름을 구해야 한다. 즉, ANIMAL_INS의 DATETIME > ANIMAL_OUTS의 DATETIME 인 데이터를 구해야 한다. 1) 두 테이블을 조인 해야한다. 이 때, OUTERJOIN과 INNERJOIN 두 가지 방법이 가능하다. -- INNER JOIN SELECT I.ANIMAL_ID, I.NAME FROM ANIMAL_INS I INNER JOIN ANIMAL_OUTS O ON I.ANIMAL_ID = O.ANIMAL_ID -- OUTER JOIN SELECT I.ANIMAL_ID, I.NAME FROM ANIMAL_INS I LEFT OUTER JOIN ANIMAL_OUTS O ON I.ANIMAL_ID = O.ANIMAL_ID WHER.. 2022. 4. 3. 이전 1 2 3 4 5 6 ··· 20 다음