[ 코디테스트 연습 > GROUP BY > 입양 시각 구하기 (1) ] 1. 테이블 정보 2. 문제 보호소에서는 몇 시에 입양이 가장 활발하게 일어나는지 알아보려 합니다. 09:00부터 19:59까지, 각 시간대별로 입양이 몇 건이나 발생했는지 조회하는 SQL문을 작성해주세요. 이때 결과는 시간대 순으로 정렬해야 합니다. 3. 요구사항 분석 및 SQL문 -- 조회 : 입양시간, 입양횟수 -- 그룹 : 시간대별 -- 정렬 : 시간대 오름차순 SELECT TO_CHAR(DATETIME, 'HH24') AS ADP_HOUR , COUNT(DATETIME) AS ADP_CNT FROM ANIMAL_OUTS GROUP BY TO_CHAR(DATETIME, 'HH24') HAVING TO_CHAR(DATETIME,..
Algorithm
SUM, MAX, MIN > 중복 제거하기 ▶테이블 정보 ▶문제 동물 보호소에 들어온 동물의 이름은 몇 개인지 조회하는 SQL 문을 작성해주세요. 이때 이름이 NULL인 경우는 집계하지 않으며 중복되는 이름은 하나로 칩니다. ▶SQL문 SELECT COUNT(DISTINCT(NAME)) AS 이름 FROM ANIMAL_INS WHERE NAME IS NOT NULL >> COUNT 함수에 DISTINCT (중복제거 기준 컬럼명) 을 적었다 >> WHERE 절에 NAME != NULL 을 써서 오류가 났다. 비교연산자 ( != ) 는 NULL에 사용 할 수 없기 때문에 논리연산자 ( IS NOT )를 사용해야 한다고 한다 NAME 컬럼의 값을 비교하는 쿼리인데 NULL은 비교할 대상이 없어서 생긴 오류인 ..
▶테이블 정보 ▶문제 동물 보호소에 들어온 모든 동물의 아이디와 이름, 보호 시작일을 이름 순으로 조회하는 SQL문을 작성해주세요. 단, 이름이 같은 동물 중에서는 보호를 나중에 시작한 동물을 먼저 보여줘야 합니다. ▶SQL문 SELECT ANIMAL_ID ,NAME ,DATETIME FROM ANIMAL_INS ORDER BY NAME, DATETIME DESC 2개의 정렬기준을 적용하기 위해 ORDER BY절에 정렬 기준 컬럼을 2개 적었다. 우선 적용할 기준 컬럼명1 (이름 = NAME) 을 앞에 적고 오름차순이 디폴트이므로 ASC는 생략. 이름 순으로 정렬 한 다음 적용할 정렬기준 컬럼명2 (보호 시작일 = DATETIME) 을 적었다. 문제에서 나중에 들어온 동물을 먼저 보여주라는 요구가 있어서..