[프로그래머스\SQL 고득점 kit] JOIN (1~4번 : mysql) LEFT OUTER JOIN 사용
·
Computer Science/자료구조와 알고리즘
1. 없어진 기록 찾기 - LEFT OUTER JOIN 천재지변으로 인해 일부 데이터가 유실되었습니다. 입양을 간 기록은 있는데, 보호소에 들어온 기록이 없는 동물의 ID와 이름을 ID 순으로 조회하는 SQL문을 작성해주세요. SELECT O.ANIMAL_ID, O.NAME FROM ANIMAL_OUTS O LEFT OUTER JOIN ANIMAL_INS I ON O.ANIMAL_ID = I.ANIMAL_ID WHERE I.ANIMAL_ID IS NULL ORDER BY O.ANIMAL_ID 2. 있었는데요 없었습니다 - LEFT OUTER JOIN 관리자의 실수로 일부 동물의 입양일이 잘못 입력되었습니다. 보호 시작일보다 입양일이 더 빠른 동물의 아이디와 이름을 조회하는 SQL문을 작성해주세요. 이때 ..
[프로그래머스\SQL 고득점 kit] ISNULL (1~3번: Mysql) (3번: Oracle)
·
Computer Science/자료구조와 알고리즘
1. 이름이 없는 동물의 아이디 -> IS NULL 동물 보호소에 들어온 동물 중, 이름이 없는 채로 들어온 동물의 ID를 조회하는 SQL 문을 작성해주세요. 단, ID는 오름차순 정렬되어야 합니다. SELECT ANIMAL_ID FROM ANIMAL_INS WHERE NAME IS NULL ORDER BY ANIMAL_ID 조건 : 이름이 없는 채로 들어온 동물의 ID -> WHERE NAME IS NULL " == NULL " 의 형태는 쓸 수 없다 2. 이름이 있는 동물의 아이디 -> IS NOT NULL 동물 보호소에 들어온 동물 중, 이름이 있는 동물의 ID를 조회하는 SQL 문을 작성해주세요. 단, ID는 오름차순 정렬되어야 합니다. SELECT ANIMAL_ID FROM ANIMAL_INS ..
[프로그래머스\SQL 고득점 kit] GROUP BY - 입양 시각 구하기(2) 풀이 2가지 (mysql)
·
Computer Science/자료구조와 알고리즘
4. 입양 시각 구하기 (2) 보호소에서는 몇 시에 입양이 가장 활발하게 일어나는지 알아보려 합니다. 0시부터 23시까지, 각 시간대별로 입양이 몇 건이나 발생했는지 조회하는 SQL문을 작성해주세요. 이때 결과는 시간대 순으로 정렬해야 합니다. 첨엔 GROUP BY로 해결하려 했으나 COUNT가 0인 부분에 대해서 조회할 수 없어서 실패 두번째 시도는 UNION ALL 이었는데,,,, (sol 2) 같이 일일히 다 써야하기 때문에 패스! (sol 1) SET, @변수 사용 SET @HOUR := -1; SELECT (@HOUR := @HOUR+1) AS HOUR, (SELECT COUNT(*) FROM ANIMAL_OUTS WHERE HOUR(DATETIME) = @HOUR) AS COUNT FROM A..
[프로그래머스\SQL 고득점 kit] GROUP BY - 입양 시각 구하기(1) 풀이 3가지 mysql
·
Computer Science/자료구조와 알고리즘
3. 입양시각 구하기 - HOUR로 시간 추출 보호소에서는 몇 시에 입양이 가장 활발하게 일어나는지 알아보려 합니다. 09:00부터 19:59까지, 각 시간대별로 입양이 몇 건이나 발생했는지 조회하는 SQL문을 작성해주세요. 이때 결과는 시간대 순으로 정렬해야 합니다. (sol 1) HAVING절 사용! SELECT HOUR(DATETIME) AS HOUR, COUNT(DATETIME) AS COUNT FROM ANIMAL_OUTS GROUP BY HOUR HAVING HOUR>=9 AND HOUR GROUP BY HOUR 여기서 HOUR(DATETIME)해도 되고 HOUR만 해도 된다! -> select절에서 HOUR(DATETIME)을 HOUR로 정의해주었기 때문! 4. 그룹화한 후, 조건을 걸어준다..
[프로그래머스\SQL 고득점 kit] GROUP BY - 고양이와 개는 몇마리 있을까, 동명 동물 수 찾기 (mysql)
·
Computer Science/자료구조와 알고리즘
1. 고양이와 개는 몇 마리 있을까 - GROUP BY 동물 보호소에 들어온 동물 중 고양이와 개가 각각 몇 마리인지 조회하는 SQL문을 작성해주세요. 이때 고양이를 개보다 먼저 조회해주세요. SELECT ANIMAL_TYPE, COUNT(ANIMAL_TYPE) AS count FROM ANIMAL_INS GROUP BY ANIMAL_TYPE ORDER BY ANIMAL_TYPE 1. SELECT ANIMAL_TYPE, count 인데, count라는 컬럼이 없으므로 어떤 식 AS count 가 되어야 한다. 즉, 어떤 식의 결과값을 count로 정의! ANIMAL_TYPE 별 개수를 구하는 것이므로 COUNT(ANIMAL_TYPE) AS count 2. FROM ANIMAL_INS(테이블명) 3. GR..
[프로그래머스\SQL 고득점 kit] SUM, MAX, MIN :Mysql
·
Computer Science/자료구조와 알고리즘
1. 최댓값구하기 가장 최근에 들어온 동물은 언제 들어왔는지 조회하는 SQL 문을 작성해주세요. sol (1) ORDER BY를 사용 SELECT DATETIME FROM ANIMAL_INS ORDER BY DATETIME DESC LIMIT 1 에서 풀었듯이, DATETIME을 내림차순으로 정렬하면 가장 최근 날짜가 가장 위에 오게 됨 따라서, "LIMIT 1"을 사용함으로써 하나!만 sol (2) MAX 함수 사용 SELECT MAX(DATETIME) FROM ANIMAL_INS 최댓값 : SELECT MAX(컬럼) FROM 테이블 참고로, AS(Alias)를 이용하여 컬럼명 정의할 수 있음 ex) SELECT MAX(DATETIME) AS date FROM ANIMAL_INS 라 쓰면, 출력할 컬럼..
[프로그래머스\SQL 고득점 kit] SELECT문 :Mysql(1~7번), Oracle(7번)
·
Computer Science/자료구조와 알고리즘
1. 모든 레코드 조회하기 동물 보호소에 들어온 모든 동물의 정보를 ANIMAL_ID순으로 조회하는 SQL문을 작성해주세요. SELECT * FROM ANIMAL_INS ORDER BY ANIMAL_ID SELECT(조회) * (모든 정보) FROM ANIMAL_INS (ANIMAL_INS 테이블에서) ORDER BY ANIMAL_ID ( ANIMAL_ID를 오름차순으로 정렬) Order by는 "ASC" (오름차순)이 기본적으로 설정되어 있어서 굳이 작성하지 않아도 된다 2. 역순 정렬하기 동물 보호소에 들어온 모든 동물의 이름과 보호 시작일을 조회하는 SQL문을 작성해주세요. 이때 결과는 ANIMAL_ID 역순으로 보여주세요. SELECT NAME, DATETIME FROM ANIMAL_INS ORD..
[Python] 수행시간과 메모리 사용량 측정
·
Computer Science/자료구조와 알고리즘
알고리즘 효율성을 측정하는 가장 기본적인 방법은 시간과 메모리를 측정하는 것이다. 파이썬에서는 해당 작업이 가능한데,, 수행시간 측정 import time #측정 시작 start_time = time.time() # 코드 #측정 종료 end_time = time.time() #출력 print("time :", end_time-start_time) 예시 from random import randint import time array = [] for _ in range(10000): array.append(randint(1, 100)) start_time = time.time() # 기본정렬 라이브러리 array.sort() end_time = time.time() print("기본 정렬 라이브러리 성능 측..