0

複数の候補者に対する複数のセクター (各セクターを州などと考えてください) からの投票を含むテーブルがあります。各セクターには複数の候補者がおり、それぞれ得票数が異なります。

これが私の表です(簡略化)

CREATE TABLE [Results]
(
    [SectorID] BIGINT,
    [CanditateID] BIGINT, 
    [VoteCount] BIGINT,
    [Newness] DATETIME
)

もちろん、セクターと候補者のメタデータを別のテーブルに保持していますが、各セクターで最も投票数の多い候補者を見つける必要があるため、これらのテーブルをビューに結合できます。

各セクターの最有力候補は によって決定され[VoteCount]、得票数が同じものが 2 つある場合は によって決定され[Newness]ます。セクターごとに正確に 1 つの行が必要であり、メタ データと結合してビューで使用できる必要があります。

各セクターから最高投票数の候補者を獲得するにはどうすればよいですか?

4

2 に答える 2

4

SQL Server 2005 以降を使用していると仮定すると、次のようにしますrow_number()

select r.*
from (select r.*,
             row_number() over (partition by SectorId order by VoteCount desc, Newness desc) as seqnum
      from Results r
     ) r
where seqnum = 1
于 2012-10-24T16:53:47.410 に答える
2

これは機能し、参加できます。

SELECT 
    TR.SectorID, TR.CandidateID
FROM
    tblResults TR
    INNER JOIN ...
    INNER JOIN ...
WHERE CandidateID =
(
    SELECT TOP 1 CandidateID
    FROM tblResults TRSUB
    WHERE TRSUB.SectorID = TR.SectorID
    ORDER BY VoteCount DESC, Newness DESC
)
于 2012-10-24T17:03:04.167 に答える