У меня есть такая таблица
Id Date GroupId Text Column1 Column2 ...
1 2020-02-02 1 .... .... ...
2 2020-02-04 1 .... .... ...
3 2020-02-03 1 .... .... ...
4 2020-02-02 2 .... .... ...
5 2020-02-05 2 .... .... ...
Мне нужно получить этот результат:
Id Date GroupId Text Column1 Column2 ...
5 2020-02-05 2 .... .... ...
4 2020-02-02 2 .... .... ...
1 2020-02-02 1 .... .... ...
3 2020-02-03 1 .... .... ...
2 2020-02-04 1 .... .... ...
Я объясняю, что мне нужно получить перед всеми строками группы 2, потому что максимум дата находится в группе 2 ... Мне нужно упорядочить группу по убыванию даты, но каждую отдельную группу следует упорядочить по возрастанию даты.
Мне также сложно написать ее в sql. Кто-нибудь может мне помочь? Спасибо
РЕДАКТИРОВАТЬ: Вот что я пытался сделать:
var result = messages.Select(m => new MyViewModel()
{
Id = m.Id,
Date = m.Date,
Text = m.Text,
GroupId = m.GroupId
}).GroupBy(d => d.GroupId)
.SelectMany(g => g)
.OrderByDescending(x => x.GroupId)
.ThenBy(x => x.Date);
Но это не работает