본문 바로가기
반응형

SQL/문제풀이29

LeetCode 176. Second Highest Salary 오라클 풀이글 Second Highest Salary - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com LeetCode 176 Second Highest Salary 문제는 Employee 테이블에서 2번째로 큰 값을 가져오라는건데 2번째로 큰 값이 없을 경우에는 null 값을 나오게 하면 된다 근데 문제는 NVL을 써서 null을 주면 안되고 'null'도 안된다 허허.. MAX(값)을 사용할 경우 값이 없을 경우에 null이 나오게 되므로 무조건 MAX를 사용해야 한다 풀.. 2020. 6. 8.
LeetCode 175. Combine Two Tables 오라클 풀이글 Combine Two Tables - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com LeetCode 175. Combine Two Tables 문제는 Person, Address 테이블을 가지고 조회하는데 두 테이블을 합쳐서 가져와야 하며 Person 테이블은 반드시 PersonId 값이 있어야 하지만 Address 테이블은 합쳤을 경우 값이 없어도 된다 해당 문제는 Person, Address 두 테이블을 Person 테이블을 기준으로 JOIN한 뒤에 값을 가.. 2020. 6. 8.
프로그래머스 DATETIME에서 DATE로 형 변환 풀이(MySQL) 사이트명 : 프로그래머스(Programmers) 문제명 : DATETIME에서 DATE로 형 변환 SQL : MySQL 단순한 문제인데 문제는 DATETIME을 ####-##-##의 형태로 변환을 해야하는데 어떻게 하냐는 것이다!!! 내 풀이방법은 아래와 같은데 DATE_FORMAT(값, '원하는 형태'); 로 값의 형태를 변경할 수 있는데 2018-01-22 이런 형태로 바꾸기 위해서는 '%Y-%M-%D' 로 입력을 해 줘야한다 이것 말고도 다른 유형으로 변경하자면 아래 링크의 글을 참조해주면 된다 MySQL DATE_FORMAT() Function MySQL DATE_FORMAT() Function ❮ MySQL Functions Definition and Usage The DATE_FORMAT() .. 2019. 9. 9.
프로그래머스 오랜 기간 보호한 동물(2) 풀이(MySQL) 사이트명 : 프로그래머스(Programmers) 문제명 : 오랜 기간 보호한 동물(2) SQL : MySQL ANIMAL_INS 테이블과 ANIMAL_OUTS 두 테이블을 갖고 시작하게 되는데 여기서 ANIMAL_INS 테이블에 있는 DATETIME - ANIMAL_OUTS 테이블의 DATETIME을 해서 상위 2 행만 조회하라는 얘기다 내 풀이방법은 아래와 같은데 먼저 ANIMAL_OUTS로 JOIN을 시킨 뒤 ANIMAL_OUTS에 없는 값은 A.ANIMAL_ID IS NOT NULL로 다 빼버린다 이후 ORDER BY에 A.DATETIME(보호일) - B.DATETIME(입양일)을 해준 후 LIMIT 2로 2행만 뽑아오면 된다 2019. 9. 9.
프로그래머스 중성화 여부 파악하기 풀이(MySQL) 사이트명 : 프로그래머스(Programmers) 문제명 : 중성화 여부 파악하기 SQL : MySQL ANIMAL_INS 테이블에서 SEX_UPON_INTAKE가 'Neutered' or 'Spayed' 로 시작할 경우 중성화 컬럼에 O를 주고 그렇지 않을 경우에는 X를 줘서 ANIMAL_ID, NAME, 중성화 컬럼 이렇게 3개를 반환하는 문제인데 마지막으로 ANIMAL_ID를 기준으로 오름차순 정렬을 해 줘야 한다 내 풀이방법은 아래와 같은데 MySQL에서는 Oracle의 Decode 대신 IF를 사용해주면 되는데 SEX_UPON_INTAKE를 1부터 8까지, 1부터 6까지 잘라봐서 'Neutered' 혹은 'Spayed' 라면 O 아니면 X를 중성화 컬럼에 넣어줘서 반환하면 되는데 마지막에 ORDE.. 2019. 9. 9.
프로그래머스 NULL 처리하기 풀이(MySQL) 사이트명 : 프로그래머스(Programmers) 문제명 : NULL 처리하기 SQL : MySQL ANIMAL_INS 테이블에서 NAME이 NULL인 값을 'No name' 으로 변환하고 조회 시 ANIMAL_ID 기준으로 오름차순 정렬해서 가져와야 한다 틀릴 만한 경우는 No name을 No Name 이런 식으로 써서 틀리는 경우가 많으므로 단어를 잘 확인하자 내가 푼 방법은 아래와 같은데 MYSQL에서는 NVL이 없고 대신 IFNULL을 사용한다 IFNULL(컬럼명, NULL 시 값); 이런 식으로 사용하는데 NAME 컬럼이 비면 'No name'을 줘서 NAME 컬럼에 NULL 대신 들어온다는 말이다 여기에 ANIMAL_ID로 ORDER BY를 걸어주면 끝이 난다 2019. 9. 9.

반응형