>데이터 베이스 >MySQL 튜토리얼 >SQL 테이블에서 임의의 고유 행 5개를 어떻게 선택할 수 있습니까?

SQL 테이블에서 임의의 고유 행 5개를 어떻게 선택할 수 있습니까?

Patricia Arquette
Patricia Arquette원래의
2025-01-17 12:46:13614검색

How Can I Select Five Random Distinct Rows from a SQL Table?

SQL 무작위 행 선택 기법

SQL 테이블에서 행을 무작위로 선택하는 것은 다양한 애플리케이션에서 흔히 발생하는 작업입니다. 이 가이드에서는 다양한 SQL 언어를 사용하여 "customerNames"("Id" 및 "Name" 열 포함)라는 테이블에서 5개의 고유 행을 선택하는 방법을 보여줍니다.

MSSQL(Microsoft SQL Server) 방식

MSSQL Server 2005 이상의 경우 이 쿼리는 5개의 무작위 행을 효율적으로 검색합니다.

<code class="language-sql">SELECT TOP 5 Id, Name FROM customerNames
ORDER BY NEWID()</code>

NEWID()은 무작위 GUID를 생성하여 TOP 5 절이 결과 집합을 제한하기 전에 무작위 순서를 보장합니다.

데이터베이스 간 무작위 행 선택(단일 행)

위의 방법은 MSSQL에서 작동하지만 다음 방법은 다양한 데이터베이스 시스템에서 하나 임의의 행을 선택하는 방법을 보여줍니다. 5개 행을 선택하도록 이를 조정하려면 추가 기술이 필요합니다(아래에 자세히 설명되어 있음).

  • MySQL:
<code class="language-sql">SELECT column FROM table
ORDER BY RAND()
LIMIT 1</code>
  • PostgreSQL:
<code class="language-sql">SELECT column FROM table
ORDER BY RANDOM()
LIMIT 1</code>
  • IBM DB2:
<code class="language-sql">SELECT column, RAND() as IDX 
FROM table 
ORDER BY IDX FETCH FIRST 1 ROWS ONLY</code>
  • 오라클:
<code class="language-sql">SELECT column FROM
( SELECT column FROM table
ORDER BY dbms_random.value )
WHERE rownum = 1</code>
  • SQLite:
<code class="language-sql">SELECT column FROM table 
ORDER BY RANDOM() LIMIT 1</code>

"column""table"를 실제 열 및 테이블 이름으로 바꿔야 합니다.

여러 행을 무작위로 선택(5행)

단일 행 선택을 5개의 개별 행으로 확장하려면 더 정교한 접근 방식이 필요한 경우가 많습니다. 단일 행 쿼리를 반복적으로 실행하는 가장 간단한 방법은 비효율적이며 고유성을 보장하지 못할 수 있습니다. 일반적으로 대규모 데이터 세트의 경우 임의성과 구별성을 모두 보장하기 위해 창 기능 또는 자체 조인과 관련된 고급 기술이 선호됩니다. 구체적인 방법은 데이터베이스 시스템에 따라 다릅니다.

성능 고려 사항

임의 행 선택 쿼리의 성능은 테이블 크기와 데이터베이스 엔진 최적화에 의해 영향을 받을 수 있습니다. 매우 큰 테이블의 경우 성능 병목 현상을 피하기 위해 대체 샘플링 전략이 필요할 수 있습니다.

위 내용은 SQL 테이블에서 임의의 고유 행 5개를 어떻게 선택할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.