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
운영게시판
최근게시물
PostgreSQL Q&A 2775 게시물 읽기
No. 2775
Re: Re: mysql의 order by rand() 와 같은 결과를 주는 쿼리는 어떻게?
작성자
김상기
작성일
2001-05-22 01:05
조회수
4,526

제가 필요해서 이 페이지를 보다가

다음과 같은 쿼리이면, 재익님의 그 제한(전재조건)이 없어도 될 듯싶습니다.

문제는 row 수가 많다면, 시간이 꽤 걸릴 것같군요.

 

select ceil(random() * (select count(*) from table_name)) as rowid,*

from table_name order by rowid limit 1;

 

limit 1은 한개의 row만.

 

>>정재익 님께서 쓰시길<<

 

:: order by rand(); 라는 구문은 mysql 에서 해당 테이블에서 랜덤한 순서대로 정보를 나열해서 가져 오

:: 는 것입니다. 어느 특정 row 를 random 하게 추출하고자 할때 유용하게 사용될 수 있지요.

::

:: 동관님의 질문을 받고 한번 고민을 해 봤습니다.

:: 지금까지의 결론은 있을 것은 같은데 그렇게 쉽지는 않다는 것입니다.

::

:: 다음과 같은 가정이 성립한다고 생각하고, 한가지 해법을 제시해 보겠습니다.

::

:: 1. _rowid 라는 특정한 필드가 있으며 이것은 1 부터 시작해서 계속 serial 로 증가하는 타입이다. (se

:: rial 이라는 자료형으로 선언되어 있다면 편리하겠지요)

:: 2. _rowid 값은 serial 임을 보장하며, 중간에 빠지는 값이 없다.

:: 3. 이 경우 특정 _rowid 값을 가지는 row 를 임의로 추출하고자 한다.

::

:: select * from table_name where

:: (_rowid=ceil(random()*(select max(_rowid) from table_name)));

::

:: >>김동관 님께서 쓰시길<<

::

:: :: 안녕하세요?

:: ::

:: :: mysql을 사용할때 임의의 데이타를 랜덤하게 불러 읽어들이기 위해서 select문에 order by rand()

:: 를

:: :: 사용했었는데 아주 유용하더군요.

:: ::

:: :: 그런데 postgresql에서도 임의의 row를 랜덤 추출하기 위해서 이것과 같은 효과를 얻는 쿼리방법을

:: 알

:: :: 고 싶습니다.

:: ::

:: :: 미리 답변에 감사드리겠습니다.

:: ::

:: :: 좋은 하루 되세요.

:: ::

:: :: ^^

[Top]
No.
제목
작성자
작성일
조회
2663postgreSQL start시키는법과 종료시키는법좀 가르쳐 주세요
이상학
2001-04-30
3387
2666┕>Re: postgreSQL start시키는법과 종료시키는법좀 가르쳐 주세요
정재익
2001-04-30 19:08:54
3977
2668┕>Re: postgreSQL start시키는법과 종료시키는법좀 가르쳐 주세요
김일형
2001-04-30 22:58:44
4362
2661수치형의 자동 증가.
꼬마
2001-04-30
4169
2662┕>Re: 수치형의 자동 증가.
정재익
2001-04-30 16:57:19
4099
2664 ┕>Re: Re: 수치형의 자동 증가.
꼬마.
2001-04-30 18:18:39
4050
2665  ┕>Re: Re: Re: 수치형의 자동 증가.
정재익
2001-04-30 19:02:04
4326
2678 ┕>mysql 의 자동증가와는 좀 다르군요..
yundream
2001-05-02 13:58:54
4394
2682  ┕>Re: PostgreSQL 에서의 자동증가값
정재익
2001-05-04 13:46:39
8600
2659PL/pgSQL - SQL Procedural Language 메뉴얼 번역 (I)
김일형
2001-04-30
5374
2660┕>Re: PL/pgSQL - SQL Procedural Language 메뉴얼 번역 (I)
정재익
2001-04-30 15:11:55
4181
2667 ┕>Re: Re: 좋습니다.... 그런데...
김일형
2001-04-30 22:51:51
3929
2669  ┕>Re: Re: Re: 영어 실력이야 뭐~~~
정재익
2001-04-30 23:27:27
3843
2656mysql의 order by rand() 와 같은 결과를 주는 쿼리는 어떻게?
김동관
2001-04-29
3967
2657┕>Re: mysql의 order by rand() 와 같은 결과를 주는 쿼리는 어떻게?
정재익
2001-04-30 00:26:56
4651
2775 ┕>Re: Re: mysql의 order by rand() 와 같은 결과를 주는 쿼리는 어떻게?
김상기
2001-05-22 01:05:18
4526
2654안녕하세요, PostgreSQL을 운영하게된 김일형입니다.
김일형
2001-04-28
4424
2655┕>Re: 안녕하세요, PostgreSQL을 운영하게된 김일형입니다.
정재익
2001-04-29 03:00:51
4611
2651[질문] 알파컴에서 postgresql 을 어케 설치해야 하나여??
박기정
2001-04-26
3822
2652┕>Re: [질문] 알파컴에서 postgresql 을 어케 설치해야 하나여??
정재익
2001-04-26 19:14:42
3879
2644안녕하세요
silver
2001-04-25
3917
2645┕>Re: 안녕하세요
정재익
2001-04-25 18:50:12
3738
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.020초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다