나는 행이 파티를 나타내는 간단한 SQL (PostgreSQL 또는 MySQL) 테이블을 가지고있는 반면, 컬럼은 선거에서받은 득표 수를 나타냅니다. D'Hondt method을 사용하여 각 당 (즉, 새 열)에 좌석 수 (n)를 할당하고 싶습니다.D' Hondt 메서드를 구현하여 SQL에서 투표 수를 할당하는 방법은 무엇입니까?
어떤 절차 (또는 함수)를 써야합니까?
업데이트 : 4 석 assumming 원하는 출력, 예를 할당 할 :
votes allocated_seats
party1 47000 2
party2 16000 1
party3 15900 1
좌석이 (D' Hondt 법)과 같이 할당된다 : 각 당사자
위한 계산 V/(S + 1) 파티
의 득표 수 : V가 좌석이 이미 당 가장 높은 값
파티에 할당이 자리를 수신하고 프로세스가 모든 좌석까지 시작됩니다는 거라고된다 istibuted.
시트 1 :
party1 47000/(0 + 1) = 47000
party2 16000/(0 + 1) = 16000
party3 15900/(+ 1 0) = 그래서 위의 예에서
15900
party1 좌석 수신
좌석 (2) :
party1 47000/(1 + 1) = 23500
party2 16000/(0 + 1) = 16000
party3 15900/(0 + 1) = 15900
파티가 바다를받습니다. t
시트 3 :
party1 47000/(2 + 1) = 15,666
party2 16000/(0 + 1) = 16000
party3 15900/(0 + 1) = 15900
party2 좌석 수신
시트 4 :
party1 47000/(2 + 1) = 15,666
party2 16000/(1 + 1) = 8000
party3 15900/(0 + 1) = 15900
party3 좌석 수신
. . 질문에 대한 답변을 원하면 샘플 데이터와 문제 해결 프로세스를 보여줄 것을 권합니다. –
작성 절차에 관해서는 DBMS가 ** 큰 ** 차이를 만듭니다.따라서 MySQL 또는 Postgres를 사용할지 결정해야합니다. –
@GordonLinoff : 당신 말이 맞습니다. 연결된 위키 피 디아 페이지는 좋은 예를 보여줍니다. – Viktor