CData コネクタは LAG() ウィンドウ関数をサポートしています

CData ドライバー & コネクタは、より包括的で強力なクエリ機能を提供するため、LAG() ウィンドウ関数をサポートしています。

Date Entered: 01/31/2025    Last Updated: 01/31/2025

CData ドライバー、コネクタ、およびその他のソリューションでは、サポートされる SQL 関数のライブラリに LAG() ウィンドウ関数が追加されました。この機能により、データの連続する値の変化を比較・計算できるようになります。このサポートはすべてのデータソースに対応しています。可能な場合、CData ソリューションは LAG リクエストをデータソースにプッシュダウンしますが、それができない場合は、初期データの取得後にメモリ上で関数を解決します。

LAG() 関数を使用したクエリ例

以下の例では、CData Connect AI のデータエクスプローラーと Salesforce 接続を使用していますが、この原則はすべてのデータソースにわたるすべての CData ソリューションに適用されます。

以下のクエリでは、Salesforce の商談(Opportunity)月と関連する顧客アカウントでグループ化した、すべての商談の予測収益の合計を計算します。LAG() 関数を使用して、各月の予測収益を前月と比較します。

クエリ

SELECT Account.Name,
    MONTH(CloseDate)        AS CloseMonth,
    LAG(SUM(Revenue), 1, 0)
      OVER (
        PARTITION BY AccountId
        ORDER BY CloseDate) AS PreviousRevenue,
    SUM(Revenue)            AS CurrentRevenue
FROM   Salesforce1.Salesforce.Opportunity
    JOIN Salesforce1.Salesforce.Account
      on Opportunity.AccountId = Account.Id
WHERE  MONTH(CloseDate) IN ( '3', '4', '5', '6', '7', '8' ) AND
    AccountId = '0016A000003FZacQAG'
GROUP  BY AccountId,
       MONTH(CloseDate)

結果

以下の結果は、Salesforce からのレスポンスの最初の 10 行を示しています。各月が連続していないのは、その間の月に商談がなかったアカウントがあることを表しています。

NameCloseMonthPreviousRevenueCurrentRevenue
Burlington Textiles Corp of America3029999
Burlington Textiles Corp of America429999872303.85
Burlington Textiles Corp of America5872303.8536624.2
Burlington Textiles Corp of America636624.272666.1
Burlington Textiles Corp of America772666.18843.4
Burlington Textiles Corp of America88843.495835.3

We appreciate your feedback.  If you have any questions, comments, or suggestions about this entry, please contact our support team at [email protected].