【发布时间】:2016-11-20 05:48:58
【问题描述】:
使用以下 linq 代码,如何将 dense_rank 添加到我的结果中?如果这太慢或太复杂,那么只使用排名窗口函数怎么样?
var x = tableQueryable
.Where(where condition)
.GroupBy(cust=> new { fieldOne = cust.fieldOne ?? string.Empty, fieldTwo = cust.fieldTwo ?? string.Empty})
.Where(g=>g.Count()>1)
.ToList()
.SelectMany(g => g.Select(cust => new {
cust.fieldOne
, cust.fieldTwo
, cust.fieldThree
}));
【问题讨论】:
-
您的 GroupBy 方法没有意义。你不应该指定一个 Func
来提取密钥吗? -
dense_rank是什么? -
@TimothyGhanem 你能解释一下吗?我遵循与codeducky.org/sql-queries-in-linq/#group-by相同的语法
-
@user3185569 dense_rank() 是一个 sql 窗口函数 - msdn.microsoft.com/en-us/library/ms173825.aspx
-
@TimothyGhanem 是的,这是我的要求的一部分,你知道如何实现dense_rank 函数吗?
标签: c# linq dense-rank