次のような 4 つのフィールドを持つデータベースがあります。
ID DeviceId Location Date
1 A ... 2
2 A ... 1
3 B ... 2
それぞれについてDeviceId
、日付が最も高いレコードの場所が必要です。DeviceId
次のような個別のものを取得できます。
// get all locations
var locations = Session.Query<Location>().ToList();
//Get the latest used unique deviceId's
var distinctDeviceIdsByDate = (
from loc in locations
orderby loc.DeviceId, loc.Date descending
select loc.DeviceId).Distinct().ToList();
次に、 join を使用して必要な行を取得しますが、 以外のものを取得できずDeviceId
、選択する行を特定できないため、これは役に立ちません。そして、次のものを選択しようとすると:
select loc
すべての列の一意の組み合わせを持つ行のみを取得できます。簡単な解決策があると確信していますが、残念ながら今はわかりません。