获取 entityframework 中每个组的最后一条记录?
Get last record of each group in entityframework?
我想检索实体框架中每个 MobileNo 的最后插入记录。
这是我的 table 数据。
ID RegNo MobileNo CreatedDate
26727 190077348 9696562673 13-02-2017 06:31
26729 123782783 9696562673 13-02-2017 06:35
45779 530087328 5878525875 07-02-2017 07:23
99902 120058572 7379130560 08-02-2017 12:39
64477 180073650 7417516480 10-02-2017 13:47
81839 240087264 7754990580 11-02-2017 10:47
并且想要像
这样的输出
ID RegNo MobileNo CreatedDate
26729 123782783 9696562673 13-02-2017 06:35
45779 530087328 5878525875 07-02-2017 07:23
99902 120058572 7379130560 08-02-2017 12:39
64477 180073650 7417516480 10-02-2017 13:47
81839 240087264 7754990580 11-02-2017 10:47
假设您的 table 的名字是 Items
:
var result = dbContext.Items.GroupBy(x => x.MobileNo)
.Select(x => x.OrderByDescending(y => y.CreatedDate).First());
试试这个。
;WITH cte AS
(
SELECT *,
ROW_NUMBER() OVER (PARTITION BY MobileNo ORDER BY CreatedDate DESC) AS rn
FROM yourtablename
)
SELECT *
FROM cte
WHERE rn = 1
我想检索实体框架中每个 MobileNo 的最后插入记录。
这是我的 table 数据。
ID RegNo MobileNo CreatedDate
26727 190077348 9696562673 13-02-2017 06:31
26729 123782783 9696562673 13-02-2017 06:35
45779 530087328 5878525875 07-02-2017 07:23
99902 120058572 7379130560 08-02-2017 12:39
64477 180073650 7417516480 10-02-2017 13:47
81839 240087264 7754990580 11-02-2017 10:47
并且想要像
这样的输出ID RegNo MobileNo CreatedDate
26729 123782783 9696562673 13-02-2017 06:35
45779 530087328 5878525875 07-02-2017 07:23
99902 120058572 7379130560 08-02-2017 12:39
64477 180073650 7417516480 10-02-2017 13:47
81839 240087264 7754990580 11-02-2017 10:47
假设您的 table 的名字是 Items
:
var result = dbContext.Items.GroupBy(x => x.MobileNo)
.Select(x => x.OrderByDescending(y => y.CreatedDate).First());
试试这个。
;WITH cte AS
(
SELECT *,
ROW_NUMBER() OVER (PARTITION BY MobileNo ORDER BY CreatedDate DESC) AS rn
FROM yourtablename
)
SELECT *
FROM cte
WHERE rn = 1