У меня есть эта маленькая сущность
class Order
{
public long Id;
public DateTime Date;
public long ProductId;
}
Я хочу выбрать Id
организации, которая имеет MAX(Date)
среди заказов, сгруппированных по ProductId
. Пара (MAX(Date)
, ProductId
) не уникальна, поэтому этот запрос неверен:
select o.Id
from Order o
where o.Date =
(select max(o2.Date)
from Order o2
where o2.ProductId = o.ProductId);
У тебя есть идеи?
В основном я хочу получить самый последний заказ из группы, поэтому, если я предполагаю, что больше Id
== новее Order
это:
select o
from Order o
where o.Id in
(select max(o2.Id)
from Order o2
group by o2.ProductId);
будет работать на меня. Есть ли лучшие решения?