Database 일반2009. 2. 7. 08:04

문) SQL로 100 ! (100의 팩토리얼)을 구하라 (난이도 C)




물론
select 100 * 99 *98 * 97  ..... * 2
from dual

이런식의 방법은 우아하지 못함을 떠나서 아마도 수치연산 오류로 제대로 작동하지 않을테니 굳이 시험해 보지 않아도 된다. 정확히 기억나지 않지만 오라클의 경우 최대 연산 가능한 수는 10^128 보다 작다.

'Database 일반' 카테고리의 다른 글

Database - Plan 이해  (0) 2009.03.07
Database Quiz - count  (0) 2009.02.13
Database Quiz - 실행계획 유도  (0) 2009.02.07
Database Quiz - 연속성  (0) 2009.02.07
Database Quiz - 달력  (0) 2009.02.07
Posted by bleujin
Database 일반2009. 2. 7. 04:13


1. 사원의 수가 아주 많아서 NL조인으로는 충분한 전체범위 처리 속도를 얻기 어렵다. 아래 SQL을 Hash Join 실행계획을 사용하도록 유도하라. (난이도 C+)


select a.ename, a.sal, b.grade
from emp a, sal_grade b
where a.sal between b.minValue and b.maxValue



- 기대되는 실행계획 :

SELECT STATEMENT
HASH JOIN
  TABLE ACCESS FULL EMP
  TABLE ACCESS FULL SAL_GRADE


'Database 일반' 카테고리의 다른 글

Database - Plan 이해  (0) 2009.03.07
Database Quiz - count  (0) 2009.02.13
Database Quiz - 함수의 활용  (0) 2009.02.07
Database Quiz - 연속성  (0) 2009.02.07
Database Quiz - 달력  (0) 2009.02.07
Posted by bleujin
Database 일반2009. 2. 7. 03:57

row의 연속성을 구현하는 문제이다.

1. 아래와 같은 입력 테이블이 있다. 연속일로 매출이 발생한 정보를 출력하라. (난이도 C)

매출년일        수량
20090130         30
20090131         10
20090201         25
20090202         20
20090204         35
20090205         40
20090206         10
20090209         20
20090211         35


기대되는 출력
기간                           수량
20090130 - 20090202      85
20090204 - 20090206      85
20090209 - 20090209      20
20090211 - 20090211      30



2. 같은 입력으로 토요일과 일요일은 매출이 없어도 휴일이기 때문에(일반 국경일은 패스) 연속성을 가지는 걸로 가정하고 출력. 즉 금요일에 매출이 발생하고 다음 월요일에 매출이 발생하면 연속성을 가지는 걸로 간주한다. (난이도 C+)

기대되는 출력
기간                           수량
20090130 - 20090202      85
20090204 - 20090209      105
20090211 - 20090211      30



'Database 일반' 카테고리의 다른 글

Database - Plan 이해  (0) 2009.03.07
Database Quiz - count  (0) 2009.02.13
Database Quiz - 함수의 활용  (0) 2009.02.07
Database Quiz - 실행계획 유도  (0) 2009.02.07
Database Quiz - 달력  (0) 2009.02.07
Posted by bleujin