如何为此编写sql select查询?

时间:2011-01-11 10:29:56

标签: sql sql-server

我有像这样的mssql tabel>

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

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

我想在使用代码10搜索记录时输出为4,因为代码10的大部分时间都会给出4等级....

和另一个逻辑,如果我搜索代码11然后输出将是3因为3将是最近的代码11的速率...

如何使用ASP.NET(VB)为im编写sql查询

1 个答案:

答案 0 :(得分: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