1
我正在寻找一个SQL生成器,它可以执行在SQL Server 2012中发布的新窗口聚合函数。我已经看过Subsonic和LINQ,但还没有看过NHibernate和其他一些。C#SQL生成器在SQL Server 2012中执行新的T-SQL窗口函数?
举个例子,使用亚音速语法,我想做到以下几点:
var query = new Select(Aggregate.Avg("Revenue", "MovingAverageRevenue")
.PartitionBy("Account_ID").OrderBy("Offset").RowsBetween(-5,-1)))
.From("Purchases")
.Where("MovingAverageRevenue")
.IsGreaterThan(500);
这将转化为类似:
SELECT Aggregates.MovingAverageRevenue
FROM
(
SELECT AVG(Revenue) OVER
(PARTITION BY Account_ID
ORDER BY Offset
ROWS BETWEEN 5 PRECEDING AND 1 PRECEDING) AS MovingAverageRevenue
FROM Purchases
) Aggregates
WHERE Aggregates.MovingAverageRevenue > 500
一个解决方案包括扩展现有的据推测,ORM也可以工作。