Просто передайте данные в следующую функцию (обратите внимание, что код находится в c #) // dt должен содержать точки столбца, но не столбец ранга

я есть таблица SQL под названием прогнозы с данными, как показано ниже

Week    Player     Points
201101  Mark       7
201101  Mark       7
201101  Pete       7
201101  Pete       3
201101  Mark       5
201102  Mark       2
201102  Mark       3
201102  Pete       7
201102  Pete       5
201102  Mark       5
201103  Mark       7
201103  Mark       7
201103  Pete       7
201103  Pete       3
201103  Mark       5

Каждый ряд в таблице представляет футбольный матч, следовательно, несколько в неделю

Результат мне нужен

Player    Count of Weekly wins
Mark      2
Pete      1

Таким образом, у Марка было больше всего очков на неделе 2011011 и 201103, у Пита было больше всего очков на неделе 201102

Набрать общее количество очков на игрока в неделю легко. Но я не могу понять, как взять максимум из этой еженедельной группы и достичь результата, который мне нужен.

У меня есть все это в SQL-запросе с использованием функции RANK, а затем выбираю всех игроков с рангом 1. Это хорошо, потому что, если два игрока имеют одинаковый счет в течение недели, они оба подсчитываются правильно. Но я хочу версию LINQ, потому что она классная и соответствует моей переработке веб-сайта!

Любая помощь будет оценена.

Хорошо, я дошел до того, что суммирую данные для каждого игрока за каждую неделю. Что мне теперь нужно сделать, это выбрать верхнюю запись для каждой недели и считать ее против игрока

(from p in FootballPredictions
        where p.FootballMatches.WeekNum <= 201101 && p.Points != null
        group p by new { p.FootballMatches.WeekNum, p.Player } into g
        orderby g.Key.WeekNum, g.Sum(p => p.Points) descending
        select new
        {
            WeekNum = g.Key.WeekNum,
            Player = g.Key.Player,
            Points = g.Sum(p => p.Points),
        })

дающий

WeekNum Player           Points 
201033  ranteld           26           <--- 1 point
201033  nicolap           25
201033  Mark              25
201033  1969 cup winners  25
201033  footysi           24
201033  Brendan           22
201033  monty             22
201033  Sandra Phillips   21
201033  SPB               20
201033  John Poulton      20
201033  RobBrown          19
201033  Steve Gardner     17
201033  Nick              16
201033  MikeSpeke         15
201034  Sandra Phillips   32           <--- 1 point
201034  Steve Gardner     27
201034  ranteld           25
201034  John Poulton      23
201034  footysi           23
201034  Mark              17
201034  nicolap           13
201034  Brendan           13
201035  Brendan           34           <--- 1 point
201035  Sandra Phillips   34           <--- 1 point
201035  nicolap           31
201035  1969 cup winners  25
201035  MikeSpeke         24
201035  Steve Gardner     22
201035  Mark              20
201035  ranteld           20
201035  Football Freddie  16

Таким образом, реальный ответ из этой таблицы

Player             Wins
Sandra Philips      2
Brendan             1
ranteld             1

Надеюсь что прояснит

Ответы на вопрос(5)

Ваш ответ на вопрос