집 >데이터 베이스 >MySQL 튜토리얼 >SQL을 사용하여 가중 확률이 있는 테이블에서 행을 무작위로 선택하려면 어떻게 해야 합니까?
가중 확률을 사용한 임의 행 선택
열 ID, 내용, 가중치가 있는 테이블을 고려하여 행을 무작위로 선택하는 작업입니다. 무게를 고려하면서. 가중치가 각각 60, 40, 100인 세 개의 행이 있는 시나리오에서 과제는 다음과 같이 각 행을 선택할 확률을 계산하는 것입니다.
Weighted Reservoir Sampling
이 문제에 대한 최적의 접근 방식은 가중치에 비례하는 확률로 항목을 효과적으로 선택할 수 있는 Weighted Reservoir Sampling입니다. 적용 방법은 다음과 같습니다.
SELECT id, -LOG(RAND()) / weight AS priority FROM your_table ORDER BY priority LIMIT 1;
이 SQL 쿼리는 다음 논리를 사용합니다.
이 가중 저장소 샘플링 기법을 사용하면 여러 행을 선택하거나 심지어 전체 테이블에 가중 확률이 적용되어 다양한 데이터 선택 시나리오에 적합한 다목적 솔루션입니다.
위 내용은 SQL을 사용하여 가중 확률이 있는 테이블에서 행을 무작위로 선택하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!