我有像这样的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查询
你要做的第一件事就是过滤:
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)