Получить записи, кто одно поле является максимальным
У меня есть несколько записей
id title date
1 aaa 2005
2 bbb 2003
3 aaa 2007
4 ccc 2005
5 ccc 2009
Мне нужно запросить, чтобы получить записи по дате макс
id title date
2 bbb 2003
3 aaa 2007
5 ccc 2009
Запрос:
select *
from Table
where Table.date = (SELECT Max(date)
FROM Table temp
WHERE temp.title = Document.title)
У меня есть SQL-запрос, но мне нужно Linq-запрос для этого действия
2 ответа
Решение
Примерно так должно работать (C#):
var results =
from x in db.table
group x by x.title into g
select g.OrderByDescending(x => x.date)
.First();
Теперь для правильной подкачки нужно позвонить Skip
/ Take
на весь запрос вот так:
var results =
(from x in db.table
group x by x.title into g
select g.OrderByDescending(x => x.date)
.First())
.Skip(0)
.Take(10);
GroupBy
заголовок, перечисление группы заказов по убыванию даты, выберите первый элемент. что-то вроде этого:
db.EntityName.GroupBy( en => en.title ).Select( g => g.OrderByDescending( en => en.date ).First() )