SQL(11)
-
[프로그래머스 / ORACLE] 상위 n개 레코드 (날짜의 MIN, MAX 값 구하기)
-- 코드를 입력하세요 SELECT NAME FROM ANIMAL_INS WHERE DATETIME = (SELECT MIN(DATETIME) FROM ANIMAL_INS) 내코드 느낀점 이번 문제는 날짜의 MAX, MIN값을 구하는 문제이다. 아직까지 코딩하면서 이런 값을 구해본적이 없어 신선한 문제였다. 바로 MIN과 MAX함수를 떠오르긴했으나 날짜비교에도 MIN과 MAX함수를 사용하는지 몰랐기에 반신반의하며 풀었던 문제이다. 제대로 찾아보니 날짜에도 MIN과 MAX함수를 사용하여 값을 구할 수 있다고 한다.
2023.10.22 -
[프로그래머스 / ORACLE] 오랜 기간 보호한 동물(1)
내코드 --1 SELECT * FROM ( SELECT A.NAME, A.DATETIME FROM ANIMAL_INS A LEFT JOIN ANIMAL_OUTS B ON A.ANIMAL_ID = B.ANIMAL_ID WHERE B.ANIMAL_ID IS NULL ORDER BY A.DATETIME) T WHERE ROWNUM
2023.10.19 -
[프로그래머스/ORACLE] 12세 이하인 여자 환자 목록 출력하기
내코드 SELECT PT_NAME, PT_NO, GEND_CD, AGE, NVL(TLNO, 'NONE') AS TLNO FROM PATIENT WHERE AGE
2023.10.19 -
[프로그래머스/ORACLE] 조건에 맞는 사용자와 총 거래금액 조회하기
내 코드 SELECT A.USER_ID, A.NICKNAME, SUM(B.PRICE) FROM USED_GOODS_USER A INNER JOIN USED_GOODS_BOARD B ON A.USER_ID = B.WRITER_ID WHERE B.STATUS = 'DONE' GROUP BY A.USER_ID, A.NICKNAME HAVING SUM(B.PRICE) >= 700000 ORDER BY SUM(B.PRICE) 느낀점 GROUP BY 를 사용하는 문제였다. GROUP BY 를 잘 사용해보지 않았기때문에 어려운점이 많았다. 나느 GROUP BY 와 WHERE를 같이 쓰면 안되는건줄... 잘못알고있었다. 뿐만 아니라 GROUP BY 뒤에는 집계함수가 쓰인 칼럼은 추가하지 않는 다는것도, GROUP BY..
2023.10.18 -
[프로그래머스/ORACLE] 중복제거하기
내 코드 SELECT COUNT(DISTINCT name) from ANIMAL_INS 느낀점 회사에서 일을 하면서 느낀점이 내가 그동안 코딩알고리즘문제를 열심히 푼 덕분에 코딩로직에 대한 이해도는 높지만 SQL 공부에는 시간을 조금 들인만큼 많이 부족하구나 하는 생각이 들었다. 이번에도 나는 GROUP BY 를 사용하려고 했지만 DISTINCT를 사용하면 더 간단하고 쉽게 풀 수 있다는 것을 알았다. DISTINCT 자체를 몰랐었지만 이번 기회에 배우고 넘어갔다. DISTINCT는 GROUP BY 와 비슷하게 중복을 지우고 출력한다. 하지만 GROUP BY 는 정렬의 기능을 가지고 있고 DISTINCT는 정렬의 기능을 갖고있지않다는 점이 다르다. 덕분에 속도는 DISTINCT가 좀 더 빠르다. 집계함수..
2023.10.18