Lev3. 있었는데요 없었습니다

문제 programmers.co.kr/learn/courses/30/lessons/59044

정답 

설명

오답 

이유 : order by 절의 실행 순서가 where 절의 실행 후 이기 때문

 

rownum이란? 

  • 오라클에서 지원하는가상 컬럼으로 쿼리의 결과에 1부터 하나씩 증가하여 붙는 컬럼
  • 사용 용도 : 여러 개의 결과를 출력하는 쿼리문을 실행 후 결과의 개수를 제한하여 가져오는데 씀
  • order by와 함께 사용할 때 주의
  • order by 절의 실행 순서가 where 절의 실행 후이기 때문에 order by와는 관계없이 rownum에 맞는 결과를 출력한 뒤 order by 절을 수행합니다.

 

참고 링크

kimtu89.github.io/oraclerownum/

Lev3. 있었는데요 없었습니다

문제 programmers.co.kr/learn/courses/30/lessons/59042

정답 

 

 

Lev3. 없어진 기록 찾기

문제 programmers.co.kr/learn/courses/30/lessons/59042

정답 

설명

JOIN 중 OUTER JOIN(LEFT OUTER JOIN / RIGHT OUTER JOIN / FULL OUTER JOIN) 사용

  • RIGHT OUTER JOIN : 오른쪽 테이블은 무조건 조회되며, 왼쪽 테이블에 조건이 맞는 것이 있다면 같이 보여줌
  • LEFT OPUTER JOIN : 왼쪽 테이블은 무조건 조회되며, 오른쪽 테이블에 조건이 맞는 것이 있다면 같이 보여줌

 

 

참고링크

it-jin-developer.tistory.com/40

 

1. 이름이 없는 동물의 아이디

문제 programmers.co.kr/learn/courses/30/lessons/59039

정답

 

2. 이름이 있는 동물의 아이디

문제 programmers.co.kr/learn/courses/30/lessons/59407

정답

 

3. NULL 처리하기

문제 programmers.co.kr/learn/courses/30/lessons/59410

정답

1. 입양 시각 구하기 (1)

문제 programmers.co.kr/learn/courses/30/lessons/59412

정답 

설명

(1) 서브 쿼리 - 인라인 뷰 (FROM 절에 사용하는 서브 쿼리)

  • TO_CHAR 함수 사용 : DATETIME 데이터를 'HH24' 형태로 변환
  • 'HH24' : 24시간제를 의미

 

(2) 부모 쿼리

  • HOUR의 값이 9이상 20 미만의 데이터를 추출 > WHERE 절
  • HOUR별로 그룹화 함 > GROUP BY절
  • HOUR을 기준으로 정렬 > ORDER BY절

 

2.  입양 시각 구하기 (2)

문제 programmers.co.kr/learn/courses/30/lessons/59413

정답

MySQL : 변수를 생성하여 연산

ORACLE : Level 을 이용하여 0~23까지의 값을 만들어 줌

설명

(1) 서브 쿼리 - 인라인 뷰 OUTS

  • DATETIME 데이터를 'HH24' 24시간 형태로 변환 
  • GROUP BY을 사용하여, 시간 별 컬럼 개수를 구한다.

 

(2) 서브 쿼리 - 인라인 뷰 HOURS

  • CONNECT BY LEVEL <= NUMBER 함수는 1부터 NUMBER까지 1씩 추가 되는 함수 (계층적 데이터를 표현하기 위해 사용)

 

(3) 부모 쿼리

  • 시간별(HOURS.HOUR)로 입양된 동물(NVL(CNT, 0))을 출력
  • NVL(값, 지정 값) 함수 : 값이 NULL인 경우 지정 값을 출력
  • HOURS의 HOUR과 OUTS의 HOUR을 기준으로 외부 JOIN
  • 시간(HOUR) 순 정렬 > ORDER BY절

1. 고양이와 개는 몇 마리 있을까

문제 programmers.co.kr/learn/courses/30/lessons/59040

정답

 

2. 동명 동물 수 찾기

문제 programmers.co.kr/learn/courses/30/lessons/59041

정답

설명

동물 보호소에 들어온 (4. 동물 이름 중) (1. (5. 두 번 이상 쓰인 이름)해당 이름이 쓰인 횟수)를 조회하는 SQL문을 작성해주세요. 이때 결과는 (3. 이름이 없는 동물은 집계에서 제외)하며, 결과는 (6. 이름 순으로 조회)해주세요.

 

1. 최대값 구하기

문제 programmers.co.kr/learn/courses/30/lessons/59415

정답

 

2. 최솟값 구하기

문제 programmers.co.kr/learn/courses/30/lessons/59038

정답

 

3. 동물 수 구하기

문제 programmers.co.kr/learn/courses/30/lessons/59406

정답

 

4. 중복 제거하기

문제 programmers.co.kr/learn/courses/30/lessons/59038

정답

 

 

 

1. 모든 레코드 조회하기

문제 programmers.co.kr/learn/courses/30/lessons/59034?language=oracle

정답

 

2. 역순 정렬하기

문제 programmers.co.kr/learn/courses/30/lessons/59035

정답

 

3. 아픈 동물 찾기

문제 programmers.co.kr/learn/courses/30/lessons/59036

정답

 

4. 어린 동물 찾기

문제 programmers.co.kr/learn/courses/30/lessons/59037

정답 

 

참고

* 비교 연산자

연산자 설명
= 같음
> 보다 큼
< 보다 작음
>= 다음보다 크거나 같음
<= 작거나 같음
<>, !=, ^= 같지 않음

 

* 논리 연산자

연산자 설명
NOT  조건을 만족하지 않아야 검색 가능
AND 두 가지 조건 모두 만족해야 검색 가능
OR 두 가지 조건 중 하나만 만족해도 검색 가능

 

* 기타 연산자

연산자 설명
BETWEEN a AND b 범위를 지정하여 조건을 걸 때 사용
IN(a, b) 범위에 포함되는 것
LIKE '%A_' ~와 같은 조건 사용
% : 문자가 없거나 하나 이상의 어떤 값이 와도 상관없다.
_ : 하나의 문자가 어떤 값이 와도 상관없다.

 

5. 동물의 아이디와 이름

문제 programmers.co.kr/learn/courses/30/lessons/59403

정답

 

6. 여러 기준으로 정렬하기

문제 programmers.co.kr/learn/courses/30/lessons/59404

정답

 

7.  상위 n개 레코드

문제 programmers.co.kr/learn/courses/30/lessons/59405

정답(MySQL) -> LIMIT 사용

정답(Oracle) -> 서브쿼리, ROWNUM 사용 (LIMIT사용 불가능)

참고

  • LIMIT1 : 맨 위에서 부터 1개 까지의 정보 조회
  • LIMIT3 : 맨 위에서 부터 3개 까지의 정보 조회
  • LIMIT2,6 : 위에서 2번째부터 6번째 까지의 정보 조회

 

 

[world] 테이블

 

1. 이 테이블이 나오는 코드를 선택해라.

 

 

 

SELECT name, population
FROM world
WHERE population BETWEEN 1000000 AND 1250000

 

2. 이 코드로 부터 나오는 결과를 선택해라.

SELECT name, population
FROM world
WHERE name LIKE 'AI%'

 

+ Recent posts