t-sql запрос с group by
with cte as (
select
Id
, CustomerID
, CreatedOn
, rn = row_number over (partition by CustomerID order by CreatedOn desc
from
tbl_Opportunity
)
select * from cte where rn = 1
чорд, совсем забыла про cte. Спасибо!
можно и без цте, просто из подзапроса выбрать
это да. А вот без over partition можно как-нибудь? проблема в том, что запрос желательно не напрямую в mssqls писать, а в приложении, с помощью конструктора, короче говоря, как можно более простыми операторами.
ну тогда джойни с результатами группировки. тогда придется как-то еще решать вопрос дубликатов, если две записи имеют максимальную дату
SELECT t2.*
FROM (select max(createdOn) as maxCreatedOn, customerID
from tbl_Opportunity
group by customerID) as t1
INNER JOIN tbl_Opportunity as t2
ON t1.customerID = t2.customerID AND
t1.maxCreatedOn = t2.createdOn
Оставить комментарий
Docman80
Итак, случился жуткий затуп, а мне нужно сделать следующее:есть таблица проектов, с колонками ID, createdOn, customerID
нужно сгруппировать по customerID и выбрать записи с максимальной createdOn в каждой группе.
select max(createdOn customerID
from tbl_Opportunity
group by customerID
естественно не дает вставить в селект ещё и колонку ID
как быть?