ActionId, uid &이라는 3 개의 열이있는 테이블이 있다고 가정 해 보겠습니다.LINQ를 사용하는 그룹 내의 최신 항목으로 행을 그룹화하는 더 나은 방법
uid를 기준으로 작업을 그룹화하려고하지만 새 작업이 uid를 통해 그룹에 삽입 될 때마다 그룹이 맨 위로 올라가고 해당 그룹 내의 개별 행이 정렬됩니다.
이 내가 SQL에 해낸 것입니다 :
select * from actions as a
inner join
(
select aa.[uid], MAX(aa.[created]) as maxcreated
from actions as aa
group by aa.[uid]
) as a2 on a2.uid = a.uid
order by a2.maxcreated desc, a.created desc
는 LINQ에서이 작업을 수행하는 방법을 다음 또한 SQL에이를 수있는 더 나은 방법이 있나요, 그리고?
그룹화 중이거나 주문 중입니까? 그룹화는 그룹화 (예 : count(), sum(), avg())를 기반으로 요약 데이터를 가져올 것임을 의미합니다. – Narnian
@Narnian - 그룹 내에서 가장 최근의 날짜를 기준으로 그룹을 순서대로 지정하면서 효과적으로 Uid에 대해 그룹화합니다. uid 필드가 threadId와 같고 동작이 스레드로 그룹화되어 있다고 가정합니다. 액션을 스레드 그룹에 함께 표시하고 싶지만 액션이 삽입 될 때마다 동일한 uid를 가진 그룹이 맨 위에 푸시됩니다. – jaffa