[185] Department Top Three Salaries
·
SQL/LeetCode
1. 문제 설명 Table: Employee +--------------+---------+ | Column Name | Type | +--------------+---------+ | id | int | | name | varchar | | salary | int | | departmentId | int | +--------------+---------+ id is the primary key column for this table. departmentId is a foreign key of the ID from the Department table. Each row of this table indicates the ID, name, and salary of an employee. It also con..
[STRING,DATE] DATETIME에서 DATE로 형 변환
·
SQL/프로그래머스
1. 문제 설명 2. 문제 풀이 해당 문제는 MySQL의 날짜 포멧 형식을 이용하면 간단하게 풀이 가능하다. %Y 4글자 년 %T hh:mm:ss %y 2글자 년 %r hh:mm:ss AM/PM %m 2글자 월(ex : 01, 12) %M %c 월(ex: 1, 12) %b 월(영문 축약 Mar) %d 2글자 일(01, 30) %W 일(영문 전체 Monday) %e 일(ex: 1, 30) %a 일(영문 축양 Mon) %H 24시간 시간 %i 분 %l 12시간 시간 %S 초 3. 정답 SELECT ANIMAL_ID, NAME, DATE_FORMAT(DATETIME,'%Y-%m-%d') "날짜" FROM ANIMAL_INS ORDER BY 1;
[STRING,DATE] 오랜 기간 보호한 동물(2)
·
SQL/프로그래머스
1. 문제 설명 2. 문제 풀이 보호 기간이 가장 길었던 동물 두 마리의 아이디와 이름을 조회하자. 1. 보호 기간이 가장 길었던 동물 => INS 테이블과 OUTS 테이블에 있는 DATETIME 컬럼이 필요하다.=> INNER JOIN을 해야함 2. 두 마리의 아이디와 이름을 조회 => LIMIT 2 3. 보호 기간이 긴 순으로 조회 => ORDER BY (OUTS.DATETIME - INS.DATETIME )DESC ORDER BY에 저렇게도 되는구나..!! 3. 정답 SELECT A.ANIMAL_ID, A.NAME FROM ANIMAL_INS A INNER JOIN ANIMAL_OUTS B ON A.ANIMAL_ID = B.ANIMAL_ID ORDER BY (B.DATETIME-A.DATETIME)..
[STRING,DATE]중성화 여부 파악하기
·
SQL/프로그래머스
1. 문제 설명 2. 문제 풀이 SEX_UPON_INTAKE 컬럼에 'Neutered' 또는 'Spayed'라는 단어가 있으면 중성화가 된 상태중성화가 되어 있다면, 'O', 아니라면 'X'라고 표시하기. 중성화를 뜻하는 단어를 찾기 위해 LIKE 를 사용하고,O X를 나타내기 위해 CASE WHEN을 사용 할 수 있겠다. 3. 정답 SELECT ANIMAL_ID, NAME, CASE WHEN (SEX_UPON_INTAKE LIKE ('%Neutered%') OR SEX_UPON_INTAKE LIKE ('%Spayed%')) THEN 'O' ELSE 'X' END AS 중성화 FROM ANIMAL_INS ORDER BY 1;
[NULL] NULL 처리하기
·
SQL/프로그래머스
1. 문제 설명 2. 문제 풀이 이름이 없는 동물의 이름을 "No name"으로 표시해 주세요=> IFNULL을 이용하자. 참고하면 좋을 듯 [DB] MySQL NULL 처리(IFNULL, CASE, COALESCE) MySQL에서 Column의 값이 Null인 경우를 처리해주는 함수들은 IFNULL, CASE, COALESCE과 같은 함수들이 있다.Orcale의 NVL()과 비슷한 기능을 한다.해당 Column의 값이 NULL을 반환할 때, 다른 값으로 출력할 수 있 velog.io 3. 답 SELECT ANIMAL_TYPE, IFNULL(NAME, 'No name') NAME, SEX_UPON_INTAKE FROM ANIMAL_INS ORDER BY ANIMAL_ID;
[184] Department Highest Salary
·
SQL/LeetCode
1. 문제 설명 table : Employee +--------------+---------+ | Column Name | Type | +--------------+---------+ | id | int | | name | varchar | | salary | int | | departmentId | int | +--------------+---------+ id is the primary key column for this table. departmentId is a foreign key of the ID from the Department table. Each row of this table indicates the ID, name, and salary of an employee. It also co..
[JOIN] 보호소에서 중성화한 동물
·
SQL/프로그래머스
1. 문제 설명 보호소에서 중성화 수술을 거친 동물 정보를 알아보려 합니다. 보호소에 들어올 당시에는 중성화 되지 않았지만, 보호소를 나갈 당시에는 중성화된 동물의 아이디와 생물 종, 이름을 조회하는 아이디 순으로 조회하는 SQL 문을 작성해주세요. 2. 문제 풀이 해당 문제는 서브쿼리를 써야 할 것 같다는 생각이 들었습니다. 1. 보호소에 들어올 당시에는 중성화 되어 있지 않았지만, 보호소를 나갈 당시에는 중성화 된 => 해당 결과를 찾기 위해서는 INS와 OUTS 테이블을 LEFT JOIN 해야합니다. 2. 보호소에 들어올 당시에는 중성화가 되지 않은=> 해당 데이터를 찾기 위해서 INS 테이블 SEX_UPON_INTAKE 컬럼에 있는 데이터 중 'INTACT%' 를 포함하는 데이터를 찾아줍니다.=>..
[JOIN] 오랜 기간 보호한 동물(1)
·
SQL/프로그래머스
1. 문제 설명 아직 입양을 못 간 동물 중, 가장 오래 보호소에 있었던 동물 3마리의 이름과 보호 시작일을 조회하는 SQL문을 작성해주세요. 이때 결과는 보호 시작일 순으로 조회해야 합니다. 2. 문제 풀이 아직 입양을 못 간 동물 중, 가장 오래 보호소에 있었던 동물을 찾기 위해서는 ANIMAL_INS 테이블과 ANIMAL_OUTS 테이블을 LEFT JOIN 해야 한다. 그 다음, 입양을 못 간 동물을 찾아야 하기 때문에 ANIMAL_OUTS 테이블에 있는 NULL값을 찾기 위해서 WHRE절을 이용해 조건을 추가한다. 오래 보호소에 있었던 동물을 찾기 위해서는 INS.DATETIME을 ASC로 정렬하고 3마리의 동물을 찾기 위해서 LIMIT 3을 걸어준다. (MYSQL 기준) 3. 정답 SELECT ..