sql 103

33. NULL 값 대신 다른 데이터 출력하기(NVL, NVL2)

요약 1. 필요해보이는 것을 먼저 공부해보자 2. 결측치는 NVL, NVL2로 고를 수 있다. 갑자기 33과로 넘어온 건 중간에 있는 내용들이 덜 중요해보였다... 순서대로 푸는게 좋을거같긴한데 뒷부분이 나의 코딩 경험에서 더 유용할 것 같아 먼저 해본다. 이번에는 결측치 대신 다른 값을 출력하는 것을 보자 이전에 배운 것 같은데 다른 점이 있는지 확인해보자 결측치때문에 다른 변수에 영향을 주는 경우가 있다. 결측치때문에 두 변수의 합이 제대로 나오지 못했다. 하지만 아래와같이 NVL로 조금은 정확하지않지만 결측치를 보정한 값을 보여줄 수 있다. NVL2는 IFELSE로 생각하면 더 좋다. NVL2(A,B,C)에서 a가 결측치가 아니면 B를 실행, 결측치면 C를 실행한다. NVL과 NVL2를 적절히 사용..

코딩/SQL 2022.05.31

27. Weather Observation Station 13

두가지 유형이다. 해당 범위 내의 STATION의 LAT_N값의 합을 구하는 문제이다. WHERE에서 범위를 찾고, SUM으로 합계를 구하자 첫시도에서는 한번에 될 줄알고 아래와 같이 작성했는데 틀렸다.. 아마 두가지를 한번에 쓰는것은 안되나보다. 그래서 두번째 시도에서는 LAT_N범위를 두가지로 나눈뒤 AND로 묶었다. ROUND도 빠뜨리지말고 써주면 정답이 된다.

23. 반올림해서 출력하기(ROUND)

요약 1. ROUND로 반올림할 수 있다. 코딩테스트에서 활용했던 ROUND 함수이다. 반올림이 가능하며 반올림 하는 곳을 지정해서 정해줄 수 있다. 자리수를 지정하면 해당 위치에서 반올림을 진행한다. 아래와 같이 소수점 2번재에서 반올림이 가능하다. 음수로 쓰면 소수점이 아닌 정수쪽으로 간다. 다만 주의할 것은 0을 넣으면 아무일도 일어나지 않는 것을 기억하자 (0은 점의 위치라서 아무 변화가 없다)

코딩/SQL 2022.05.30

22. 특정 철자 잘라내기

요약 1. TRIM, RTRIM, LTRIM으로 특정 철자를 잘라낼 수 있다. 2. 지정한 부분이 동일해야 삭제가 된다. 3. 활용은 조금 어렵다고 생각된다. 내가 너무 오랜만에 해서 지난번엔 요약하는 부분이 없었다... 특정 철자를 잘라내는 방법이다. 데이터 전처리할 때 유용한 함수로 보인다. LTRIM은 왼쪽부터 탐색해서 찾는 것이다. 아래 예제에서 smith에서 s를 찾아서 제거하는 것이다. 근데 아래에서 왼쪽 첫자가 m이 아니므로 그대로 smith가 출력된다. 책에서는 공백이 있을때 찾아줄 수 있다는 말이 있는데 실제로는 잘 활용할지는 모르겠다.. 아무튼 이번엔 특정 철자를 잘라내는 방법을 배웠다. RTRIM LTIRM TRIM!!

코딩/SQL 2022.05.30

21. 특정 철자를 N개 만큼 채우기(LPAD, RPAD)

아까 못했던 것을 이번에 해결가능한지 풀어보자 처음 봤을때는 해결가능하지 못할거같은데 자세히 보자 월급을 특정 자리수만큼 늘리고 빈 곳을 *로 채우는 것이다. LPAD는 왼쪽, RPAD는 오른쪽에 채우게 된다. 다음과 같이 시각화하는 것도 가능하다. 월급 만큼 *로 표시한다. *하나를 쓰고 ROUND로 월급의 크기를 본다. 그리고 빈 만큼 *을 채워넣게 된다. 사실 정확한 크기만큼 되는 것은 아니지만 시각적으로 판단하기에 충분히 좋아보인다. ORDER BY로 더 깔끔해보이게 쿼리를 작성할 수 있다

코딩/SQL 2022.05.29

20. 특정 철자를 다른 철자로 변경하기(REPLACE)

진짜 오랜만에 책 공부를 해보자 사실 코딩테스트 문제를 풀었지만 올리지 못한 문제가 10개는 되는 것 같은데 천천히 올려보기로 하자 2주만에 책을 폈는데 지난 19과에 SUBSTR이 있었던 것을 보며 코딩테스트 문제 풀었던 기억도 다시 났다. 오늘 배울 것은 REPLACE로 교체하는 것이다. 예제로 먼저 확인해보자 예제에서는 0을 *으로 바꾸는 예제이다. 이것을 잘 활용한다면 비식별화하는데 좋을 것 같다. 그러면 조금 더 응용해서 활용해보자 끝에서 두번째 글자를 마스킹하는 것이다. -1 부분만 바꾸면 원하는 곳의 위치를 바꿀 수 있다. 이건 두번째 글자부터 익명화하는 것이다.(글자수는 잘 모르게 됨) 2를 바꾸면 원하는 곳부터 익명화시킬 수 있다. 자리 수만큼 바꾸는 것은 잘 모르겠다... 앞으로 배우면..

코딩/SQL 2022.05.29