database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
ㆍMS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MS-SQL Q&A 6278 게시물 읽기
No. 6278
웹 문제를 랜덤 축출하는 방법좀 알려주세요.
작성자
패션리더
작성일
2011-11-27 23:44ⓒ
2011-11-27 23:57ⓜ
조회수
6,122

"select Top 7 int_num, munje, submunje, dap1, dap2, dap3, dap4, chapter, MunjeLevel, jungdap, newId() from question where chapter = '" + chapter + "' and MunjeLevel = '하' UNION all select Top 7 int_num, munje, submunje, dap1, dap2, dap3, dap4, chapter, MunjeLevel, jungdap, newId() from question where chapter = '" + chapter + "' and MunjeLevel = '중' UNION all select Top 6 int_num, munje, submunje, dap1, dap2, dap3, dap4, chapter, MunjeLevel, jungdap, newId() from question where chapter = '" + chapter + "' and MunjeLevel = '상' order by newId()"; 

 

우선 JSP이고 문제 푸는 사이트를 제작하려하는데
 

테이블명은 question이고 테이블안에 과목(chapter)이 5개 있습니다.


과목 선택을 하면 난이도(MunjeLevel)를 상 중 하로 나누고 각 난이도마다 난이도 상은 6문제, 난이도 중은 7문제, 난이도 하는 7문제 문제가 계속 딴 문제가 나오게 랜덤으로 나오게 설정하려고 하는데


MSSQL로 실행해 보니까 제가 의도한대로 나오지 않고 한과목당 약 200문제가 DB에 저장되어 있는데 거기서 일정한 20문제가 미리 뽑혀서 이 20 문제가 순서만 랜덤으로 돌아가는 형식으로 되어있었습니다. (똑같은 20 문제가 순서만 바뀌어서 랜덤으로 돌아갑니다)


그래서 question 테이블 안에 있는 문제 들을 위에 제가 했던 것과 달리 과목당 200개의 데이터가 있는데 200개 중에 20개를 무작위로 착출하여 랜덤으로 돌아 갈 수 있게 SELECT 문을 좀 수정하여 알려주셨으면 합니다.

이 글에 대한 댓글이 총 2건 있습니다.

올려주신 쿼리의 문제는  일단 각 난이도별로 DB가 알아서 7, 7, 6개를 뽑아온 후에(랜덤하다는 보장 없음)
이를 랜덤하게 섞는 쿼리입니다.

select * from 
(
select ROW_NUMBER() over ( partition by MunjeLevel order by newid() ) AS rn
, *
from aaac
) AS tt
where ( rn <= 7 and MunjeLevel <> '상' ) OR ( rn <= 6 and MunjeLevel = '상' )
order by newid()
;

이렇게 함 해보세요.

우욱님이 2011-11-28 11:52에 작성한 댓글입니다. Edit

일단 답변 감사드리구요. 해도 잘 안되네요 ㅜㅜ

계속 똑같은 문제가 순서만 바뀌어서 나오네요 ㅜㅜ

과목당 약 200개의 문제가 DB에 들어가 있고, 약 70문제씩 난이도가 상중하로 나누어져 있는데 테이블에서 계속 다른 문제를 뽑아오는 방법이 없을까요??

패션리더님이 2011-11-28 21:44에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
6282SSIS문의~ [1]
2011-12-08
5779
6280쿼리문 좀 도와주십시오. ㅠㅠ 제발~~ [2]
초보입니다
2011-11-29
6636
6279쿼리좀 부탁드립니다. [1]
돈세자
2011-11-29
6358
6278웹 문제를 랜덤 축출하는 방법좀 알려주세요. [2]
패션리더
2011-11-27
6122
6277[질문] SQL 2008 Std R2 트랜젝션 로그 파일 정리 방법???? [2]
궁금이
2011-11-17
6095
6276Log Shipping 시간을 줄이는 방법이 있을까요? [1]
돈세자
2011-11-15
6101
6275join 방법 질문입니다. [1]
주딩이
2011-11-13
6161
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.027초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다