1

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 の拡張を含むソリューションも機能する可能性があります。

4

1 に答える 1