2014-03-26 50 views
1

如何编写一个只显示10个数据并且只显示count列中最高数字的查询?SQL Server查询,按列中较高数字的顺序

我在想,

SELECT * 
FROM score 
WHERE count = (SELECT MAX(count) 
       FROM score 
       WHERE count <> (SELECT MAX(count) FROM score) TOP 10; 

我知道我几乎没有只是不太。

我想从得分表中显示最高计数的前十名。

+0

要么您尝试使其更复杂,或者您缺少部分信息。我试着在我的回答中解决这两个问题,但如果我错过了一些东西,请告诉我。 – paqogomez

+0

我试图从计数列中获得最高分数以显示最高到最低和仅显示10.并且我会过于复杂的事情。 – Beep

+0

好吧,你的第一个通过sql运行,谢谢。 – Beep

回答

1

如果你有成绩,只是想看看他们依次是:

SELECT 
    top 10 count 
FROM 
    score 
order by count desc 

要使用聚合,你需要把它比较反对的东西。例如,如果您有用户,请执行以下操作:

SELECT 
    top 10 sum(count), u.userid 
FROM 
    score s 
    inner join users u on s.userid = u.userid 
group by u.userid 
order by sum(count) desc 
0

SELECT * FROM SCORE ORDER BY COUNT DESC TOP 10

或任何top 10去...会给前10名的分数。

SELECT * FROM SCORE WHERE COUNT = (SELECT MAX(COUNT) FROM SCORE) TOP 10

前10排有得分等于最大计数。

+0

在MS Sql Server中,“TOP”关键字位于select中。它与MySQL和其他语言中的“LIMIT”相同,但是“LIMIT”放在语句的末尾,就像你在这里完成的那样。此查询不会在MSSQL或MySQL中运行。 – paqogomez