Sql server SQL到LINQ简单查询?

Sql server SQL到LINQ简单查询?,sql-server,linq-to-sql,Sql Server,Linq To Sql,下面是一个sql server表,用于保存用户对足球比赛的预测。用户可以预测特定足球比赛的主场胜利、客场胜利或平局/平局 如何查询此表以查找前3个预测,前3个游戏必须是不同的gameId 无论是SQL还是LINQ解决方案,都会非常受欢迎 我假设你想要最强烈的预测,即大多数人都同意结果的比赛 var predictions = db.Predictions .GroupBy( g => g.gameId )

下面是一个sql server表,用于保存用户对足球比赛的预测。用户可以预测特定足球比赛的主场胜利、客场胜利或平局/平局

如何查询此表以查找前3个预测,前3个游戏必须是不同的gameId

无论是SQL还是LINQ解决方案,都会非常受欢迎


我假设你想要最强烈的预测,即大多数人都同意结果的比赛

 var predictions = db.Predictions
                     .GroupBy( g => g.gameId )
                     .Select( g => new 
                      {
                            gameId = g.Key,
                            homeWin = g.Sum( h => h.homeWin ),
                            awayWin = g.Sum( a => a.awayWin ),
                            draw = g.Sum( d => d.draw )
                      })
                     .Select( g => new 
                      {
                            gameId = g.gameId,
                            prediction = g.homeWin > g.awayWin 
                                             ? (g.homeWin > draw 
                                                    ? 'homeWin'
                                                    : 'draw')
                                             : (g.awayWin > g.draw
                                                    ? 'awayWin'
                                                    : 'draw'),
                            strength = g.homeWin > g.awayWin 
                                             ? (g.homeWin > draw 
                                                    ? g.homeWin
                                                    : g.draw) 
                                             : (g.awayWin > g.draw 
                                                    ? g.awayWin 
                                                    : g.draw)
                      })
                     .OrderByDescending( g => g.strength )
                     .Take(3);

您可能可以将这两个选项组合在一起,但在我看来,这会损害代码的可读性。

因此,对于示例数据,您希望示例输出是什么?对不起,是的,输出!我只想使用示例数据输出gameId,我们可以看到gameId 5都预测了5场主场胜利和5场客场胜利(在他的场景中,我会选择评分最高的球队作为最受欢迎的球队,我想这超出了这个问题的范围),因为我不希望gameId 5返回两次,谢谢tvanfosson你回答了我遗漏的问题,是的,我希望得到最一致的预测,我会测试你的答案并报告回来!谢谢