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