본문 바로가기

Programmers

[Programmers/SQL] 이름이 있는 동물의 아이디 1. 테이블 구조 2. 문제 동물 보호소에 들어온 동물 중, 이름이 있는 동물의 ID를 조회하는 SQL 문을 작성해주세요. 단, ID는 오름차순 정렬되어야 합니다. 3. 풀이 NULL이 아닌 이름은 NAME IS NOT NULL로 확인할 수 있다. SELECT ANIMAL_ID FROM ANIMAL_INS WHERE NAME IS NOT NULL ORDER BY ANIMAL_ID ASC; [참조] programmers.co.kr/learn/courses/30/lessons/59407 코딩테스트 연습 - 이름이 있는 동물의 아이디 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, .. 더보기
[Programmers/SQL] 이름이 없는 동물의 아이디 1. 테이블 구조 2. 문제 동물 보호소에 들어온 동물 중, 이름이 없는 채로 들어온 동물의 ID를 조회하는 SQL 문을 작성해주세요. 단, ID는 오름차순 정렬되어야 합니다. 3. 풀이 NULL 체크는 IS NULL로 할 수 있다. SELECT ANIMAL_ID FROM ANIMAL_INS WHERE NAME IS NULL ORDER BY ANIMAL_ID ASC; [참조] programmers.co.kr/learn/courses/30/lessons/59039 코딩테스트 연습 - 이름이 없는 동물의 아이디 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, IN.. 더보기
[Programmers/SQL] 입양 시각 구하기(2) 1. 테이블 구조 2. 문제 보호소에서는 몇 시에 입양이 가장 활발하게 일어나는지 알아보려 합니다. 0시부터 23시까지, 각 시간대별로 입양이 몇 건이나 발생했는지 조회하는 SQL문을 작성해주세요. 이때 결과는 시간대 순으로 정렬해야 합니다. 3. 풀이 데이터가 존재하지 않는 시각도 반환을 해야하므로, 0 ~ 23시를 나타내는 변수 @hour를 선언하고 @hour와 같은 시각을 가진 데이터를 중첩 SQL로 계산한다. SET @hour := -1; SELECT (@hour := @hour + 1) AS HOUR, ( SELECT COUNT(*) FROM ANIMAL_OUTS WHERE HOUR(DATETIME) = @hour ) AS COUNT FROM ANIMAL_OUTS WHERE @hour < 23 .. 더보기
[Programmers/SQL] 입양 시각 구하기(1) 1. 테이블 구조 2. 문제 보호소에서는 몇 시에 입양이 가장 활발하게 일어나는지 알아보려 합니다. 09:00부터 19:59까지, 각 시간대별로 입양이 몇 건이나 발생했는지 조회하는 SQL문을 작성해주세요. 이때 결과는 시간대 순으로 정렬해야 합니다. 3. 풀이 시각별로 비교를 해야하므로 HOUR(DATETIME)을 사용한다. GROUP BY HOUR(DATETIME)으로 같은 시각을 묶고 ORDER BY HOUR(DATETIME)으로 시각을 오름차순으로 정렬한다. SELECT HOUR(DATETIME) AS HOUR, COUNT(DATETIME) AS COUNT FROM ANIMAL_OUTS WHERE 9 더보기
[Programmers/SQL] 동명 동물 수 찾기 1. 테이블 구조 2. 문제 동물 보호소에 들어온 동물 이름 중 두 번 이상 쓰인 이름과 해당 이름이 쓰인 횟수를 조회하는 SQL문을 작성해주세요. 이때 결과는 이름이 없는 동물은 집계에서 제외하며, 결과는 이름 순으로 조회해주세요. 3. 풀이 같은 이름을 가진 동물로 묶기 위해 GROUP BY NAME을 사용하고 같은 이름이 둘 이상인 경우만 반환하기 위해 HAVING COUNT(NAME) >= 2를 사용하고, 이름 기준 오름차순 정렬을 위해 ORDER BY NAME ASC를 사용한다. SELECT NAME, COUNT(NAME) AS COUNT FROM ANIMAL_INS GROUP BY NAME HAVING COUNT(NAME) >= 2 ORDER BY NAME ASC; [참조] programmer.. 더보기
[Programmers/SQL] 고양이와 개는 몇 마리 있을까 1. 테이블 구조 2. 문제 동물 보호소에 들어온 동물 중 고양이와 개가 각각 몇 마리인지 조회하는 SQL문을 작성해주세요. 이때 고양이를 개보다 먼저 조회해주세요. 3. 풀이 동물의 종류를 지정하는 변수인 ANIMAL_TYPE을 기준으로 잡기 위해 GROUP BY ANIMAL_TYPE을 사용하고, ANIMAL_TYPE을 기준으로 오름차순으로 정렬해서 종류와 수(COUNT(ANIMAL_TYPE))를 출력한다. SELECT ANIMAL_TYPE, COUNT(ANIMAL_TYPE) AS COUNT FROM ANIMAL_INS GROUP BY ANIMAL_TYPE ORDER BY ANIMAL_TYPE ASC; [참조] programmers.co.kr/learn/courses/30/lessons/59040 코딩.. 더보기
[Programmers/SQL] 중복 제거하기 1. 테이블 구조 2. 문제 동물 보호소에 들어온 동물의 이름은 몇 개인지 조회하는 SQL 문을 작성해주세요. 이때 이름이 NULL인 경우는 집계하지 않으며 중복되는 이름은 하나로 칩니다. 3. 풀이 이름에 NULL을 포함시키지 않기 위해 COUNT의 기준을 NAME으로 잡고, 중복을 제거하기 위해 COUNT(DISTINCT NAME) 을 사용한다. SELECT COUNT(DISTINCT NAME) FROM ANIMAL_INS; [참조] programmers.co.kr/learn/courses/30/lessons/59408 코딩테스트 연습 - 중복 제거하기 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_I.. 더보기
[Programmers/SQL] 동물 수 구하기 1. 테이블 구조 2. 문제 동물 보호소에 동물이 몇 마리 들어왔는지 조회하는 SQL 문을 작성해주세요. 3. 풀이 COUNT(*)를 사용해서 모든 동물의 수를 센다. SELECT COUNT(*) FROM ANIMAL_INS; [참조] programmers.co.kr/learn/courses/30/lessons/59406 코딩테스트 연습 - 동물 수 구하기 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr 더보기