如何为此编写sql select查询?

use*_*800 2 sql sql-server

我有像这样的mssql tabel>

ID           Code                Rating
1            10                  4
2            10                  5
3            10                  4
4            11                  2
5            11                  3
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

tda*_*ers 5

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

SELECT * FROM mytable WHERE Code = 10
Run Code Online (Sandbox Code Playgroud)

您对'评级'字段感兴趣:

SELECT Rating FROM mytable WHERE Code = 10
Run Code Online (Sandbox Code Playgroud)

现在您想要计算评级的条目,这可以通过组合GROUP BY和COUNT()功能来实现:

SELECT COUNT(*), Rating FROM mytable WHERE Code = 10 GROUP BY Rating
Run Code Online (Sandbox Code Playgroud)

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

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