Programmers/SQL(34)
-
[mysql/oracle] 보호소에 중성화한 동물
문제 설명 문제 결과 mysql / oracle 1 2 3 4 5 6 SELECT A.ANIMAL_ID, A.ANIMAL_TYPE, A.NAME FROM ANIMAL_INS A, ANIMAL_OUTS B WHERE A.ANIMAL_ID = B.ANIMAL_ID AND A.SEX_UPON_INTAKE LIKE 'Intact%' AND (B.SEX_UPON_OUTCOME LIKE 'Neutered%'OR B.SEX_UPON_OUTCOME LIKE 'Spayed%') ORDER BY A.ANIMAL_ID Colored by Color Scripter cs 중성화를 거치지 않은 동물 → 성별 및 중성화 여부 : Intact 중성화를 거친 동물 → 성별 및 중성화 여부 : Neutered / Spayed 보호소에..
2023.09.04 -
[mysql/oracle] 오랜 기간 보호한 동물(2)
문제 설명 문제 결과 mysql 1 1 2 3 4 5 6 7 8 9 SELECT ANIMAL_ID, NAME FROM ( SELECT A.ANIMAL_ID, A.NAME, RANK() OVER(ORDER BY B.DATETIME - A.DATETIME DESC) AS PERIOD FROM ANIMAL_INS A, ANIMAL_OUTS B WHERE A.ANIMAL_ID = B.ANIMAL_ID ORDER BY PERIOD ) a WHERE PERIOD IN (1,2) Colored by Color Scripter cs : mysql은 서브쿼리에 alias 필수! oracle 1 1 2 3 4 5 6 7 8 9 SELECT ANIMAL_ID, NAME FROM ( SELECT A.ANIMAL_ID, A.N..
2023.07.27 -
[mysql/oracle] 없어진 기록 찾기
문제설명 문제 결과 mysql / oracle 1 2 3 4 5 SELECT B.ANIMAL_ID, B.NAME FROM ANIMAL_INS A RIGHT JOIN ANIMAL_OUTS B ON A.ANIMAL_ID = B.ANIMAL_ID WHERE A.ANIMAL_ID IS NULL ORDER BY B.ANIMAL_ID cs ANIMAL_INS와 ANIMAL_OUTS를 OUTS 메인으로 조인하고 교집합 부분을 없애면 INS에는 없지만 OUTS에는 있는 동물들이 나온다.
2023.07.10 -
[mysql/oracle] 오랜 기간 보호한 동물(1)
문제 설명 문제 결과 mysql - 처음 코드 1 2 3 4 5 SELECT NAME, DATETIME FROM ANIMAL_INS WHERE ANIMAL_ID NOT IN (SELECT ANIMAL_ID FROM ANIMAL_OUTS) ORDER BY DATETIME LIMIT 3 Colored by Color Scripter cs ANIMAL_OUTS에 없는 동물을 뽑기 위해 서브쿼리를 사용했는데 사실 join이라는 카테고리에는 적합하지 않다 ANIMAL_INS에 있는 동물 중 ANIMAL_OUTS에는 없는 동물을 뽑으면 되므로 LEFT JOIN을 걸고 OUTS 테이블쪽 데이터를 null 처리하면 된다, 정답코드 1 2 3 4 5 6 SELECT A.NAME, A.DATETIME FROM ANIMAL..
2023.07.05 -
[mysql/oracle] 있었는데요 없었습니다
문제 설명 문제 결과 mysql / oracle 1 2 3 4 5 SELECT A.ANIMAL_ID, A.NAME FROM ANIMAL_INS A, ANIMAL_OUTS B WHERE A.ANIMAL_ID = B.ANIMAL_ID AND A.DATETIME > B.DATETIME ORDER BY A.DATETIME cs
2023.07.05 -
[mysql/oracle] 상품 별 오프라인 매출 구하기
문제 설명 문제 결과 mysql / oracle 1 2 3 4 5 SELECT MAX(A.PRODUCT_CODE) AS PRODUCT_CODE, SUM(B.SALES_AMOUNT*A.PRICE) AS SALES FROM PRODUCT A, OFFLINE_SALE B WHERE A.PRODUCT_ID = B.PRODUCT_ID GROUP BY A.PRODUCT_ID ORDER BY SALES DESC, PRODUCT_CODE Colored by Color Scripter cs 1.상품코드별 매출액 → GROUP BY PRODUCT_ID 2. 매출액 = 상품코드별 판매량 * 판매가 → FROM PRODUCT A, OFFLINE_SALE B → SUM(B.sales_amount * A.price) : offl..
2023.05.18