SQL Server:获得前5名并超过2列

时间:2014-06-10 11:23:55

标签: sql-server-2012

我目前正在使用SQL Server 2012 SE数据库为足球预测程序创建前5个预测概述。

我有一个名为Userpredictions的表格,其中有两列:team1scoreteam2score

这些列包含用户提供特定匹配的预测。

我需要前5个选择这些列的组合给出的次数。所以不是team1分数是0,1,2等多少次的前5名......但是组合team1score和team2score的前5名出现

如果可能的话,这些预测的发生次数也是如此

我想首先选择所有team1score和team2score组合中的一个,然后将计数添加到它们并按照这个数量排序并切割直到我只有前5名但我不知道如何在SQL Server中形成查询

1 个答案:

答案 0 :(得分:0)

怎么样

SELECT TOP (5)
    TeamScore1, 
    TeamScore2,
    COUNT(*)
FROM
    dbo.UserPredictions
GROUP BY
    TeamScore1, 
    TeamScore2
ORDER BY
    COUNT(*) DESC

您基本上只计算每对(TeamScore1TeamScore2)存在的次数,并按计数降序排序值列表,然后选择前5位。