【发布时间】:2014-03-31 08:47:09
【问题描述】:
我到处搜索,似乎无法在任何地方找到答案,所以我寻求帮助。
我正在尝试随机选择 5 个人。有点像画。每个人都可以输入自己想输入的次数,但只能考虑其中的 3 个条目。所以... 5 个不同的人将获胜,但所有条目(包括重复)都需要考虑最多 3 个条目。
例如:
Adam,1
Adam,2
Adam,1
Adam,1
Sally,2
Timmy,3
John,1
John,1
Jenny,2
Wendy,3
Wendy,3
Wendy,3
Wendy,5
Wendy,5
这是我目前得到的代码:
select top 5
name, vote
from
(SELECT
name, vote
FROM
Entries
GROUP BY
name, vote) winners
ORDER BY
NEWID();
我的问题是 (1) 我没有将它们限制为 3 次以供考虑,因为我对如何做到这一点一无所知,并且 (2) Distinct 不起作用,因为它们可以输入 100 次并投票每次都有不同的条目。
【问题讨论】:
-
vote代表什么? -
对于多条用户记录的问题,没有办法解决。您可以努力预防,但这会缩小问题的范围。
-
您使用的是什么版本的 SQL Server?
-
我使用的是 SQL Server 2000
-
@user3361687 你能解释一下
vote代表什么吗?你是按名字和投票来分组的,是“Wendy”即使她参加了 5 次也有 3 次获胜,还是“Wendy,5”有 2 次获胜的机会因为她参加了 2 次?跨度>
标签: sql sql-server tsql sql-server-2000