表如
datetime a1 b1 x2 ...
07-01-2009 13:10 8 9 10
07-01-2009 13:11 8 8 2
07-01-2009 13:12 9 1 1
一整天每秒 1 行(=86400 行);~40 列;所有相同的格式
我正在寻找一种方法来检索最大值和指定列的时间。
我正在寻找一种方法来检索最大值和在时间范围内指定列的相应时间。
就像是
Select top 1 time,a1 from table
where (datetime>=begin and datetime<end)
order by a1 desc
可以,但我不能将该列用作参数。
LINQ 解决方案或 SP 会很棒。
在对整个数据集进行排序以检索最大值时,我是否需要担心性能?也许MAX函数会更快。
更新
我尝试以动态 linq 方式实现它,就像 Timothy (tvanfossen) 建议的那样
Dim q2 = context.table _
.Where("t >= @0 AND t < @1", begin, end) _
.OrderBy("@0 desc", col) _
.Take(1) _
.Select(col)
但是这会返回表中的第一个值。这将返回时间范围内的第一个值,而不是最大值。查看 SQL 探查器,我发现没有 ORDER 子句。
任何的想法?
更新 2
由于某种原因,替换值在 orderby 子句中不起作用。
.OrderBY (col + "desc") 有效