select * from ( select * from 테이블 order by dbms_random.value )
기본적인 오라클 랜덤 함수 예이다.
select row_number() over(partition by 중복조회컬럼 order by order by 정렬컬럼) 재명명할 컬럼이름
from 테이블
중복제거 하면서 전체값 가져오는 방법이다.
EX)
select * from
(
SELECT a.course_id,a.course_name,b.study_day_term,
row_number() over(partition by a.kind order by a.kind) cnt, a.kind
--파란색 부분은 같은 강좌 단원 중복제거 한것입니다
FROM elt_course a, elt_org_course b
WHERE b.org_class1 = 'S110'
AND b.open_state = '1'
AND b.a_admission = '1'
AND a.course_id = b.course_id
order by dbms_random.value
--이 SELECT문을 랜덤으로 뿌려주게 하였습니다.
)
where cnt = '1'
-- 중복 제거문을 썼지만 1로 정해주지 않으면 같은 단원이 다 나오기때메 하나만 나오게 한것입니다.
and rownum <= 4
제가 만든 간단한 추천강좌 랜덤 쿼리입니다.
'개발 > ORCLE' 카테고리의 다른 글
오라클 INTERVAL (0) | 2009.03.05 |
---|---|
오라클 MONTHS_BETWEEN, ADD_MONTHS SYSDATE, TODAY, LAST_DAY, NEXT_DAY 날짜함수 (0) | 2009.03.05 |
오라클 VIEW (0) | 2008.11.18 |
오라클 서브쿼리 (0) | 2008.11.12 |
오라클 SUBSTR 2번쨰 (0) | 2008.11.10 |