2011-01-11 97 views
2

我有MSSQL TABEL这样>如何为此编写sql select查询?

ID   Code    Rating 
1   10     4 
2   10     5 
3   10     4 
4   11     2 
5   11     3 

SQL查询的逻辑,我想......

我想,当我使用代码10,则输出将是4搜索记录,因为4等级会给予大部分时间码10 ....

和另一逻辑,如果我搜索码11,则放出来将是3,因为3将是最近期的11码速度...

如何使用ASP编写即时消息的sql查询。 NET(VB)

+0

这与ASP.NET无关,它纯粹是一个数据库事物。 – tdammers 2011-01-11 10:34:24

+0

如果您有另一个代码10的评分为5,即代码10没有单一模式值,该怎么办?您需要SQL还是使用特定ORM的代码,例如Linq到SQL或EF? – Rup 2011-01-11 10:35:08

回答

5

你想要做的第一件事是过滤器:

SELECT * FROM mytable WHERE Code = 10 

您所感兴趣的 '等级' 字段:

SELECT Rating FROM mytable WHERE Code = 10 

现在你要计算的条目评分可以使用GROUP BYCOUNT()函数的组合来实现:

SELECT COUNT(*), Rating FROM mytable WHERE Code = 10 GROUP BY Rating 

现在剩下的就是按照计数,降序排序,并且只选择第一行:

SELECT TOP 1 Rating FROM mytable WHERE Code = 10 GROUP BY Rating ORDER BY COUNT(*) DESC