【问题标题】:C# SQL Generator to execute the new T-SQL Window Functions in SQL Server 2012?C# SQL 生成器在 SQL Server 2012 中执行新的 T-SQL 窗口函数?
【发布时间】:2013-05-04 17:54:15
【问题描述】:

我正在寻找可以执行 SQL Server 2012 中发布的新窗口聚合函数的 SQL 生成器。我已经看过 Subsonic 和 LINQ,但还没有看过 NHibernate 和其他一些.

例如,使用 Subsonic 中的语法,我想执行以下操作:

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 的解决方案也可以工作。

【问题讨论】:

    标签: c# tsql sql-server-2012 window-functions


    【解决方案1】:

    不确定,但我敢打赌微软没有花时间在 LINQ-to-SQL 中实现这样的结构,因为如果 LINQ-to-- SQL 已经运行良好。

    关于亚音速我不能说太多。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-30
      • 2018-01-03
      • 1970-01-01
      • 2018-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-14
      相关资源
      最近更新 更多