始める無料で始める

前後の値

列の値を1行上または下にずらしたい場合はどうすればよいでしょうか?前の演習と同じ手順で進めますが、新しい2つの関数 LEAD()(次の値)と LAG()(前の値)を使います。手順は次のとおりです。

  • まず、パーティションを作成します
  • 次に、特定の列で並べ替えます
  • 最後に、要件に合わせて LEAD() および/または LAG() 関数を使います

この演習はコースの一部です

中級 SQL Server

コースを見る

演習の手順

  • 各テリトリーごとに以下を行う T-SQL クエリを書いてください。
    • OrderDate の値を1行下にずらし、この列を PreviousOrder と名付けます。
    • OrderDate の値を1行上にずらし、この列を NextOrder と名付けます。 テリトリーで PARTITION BY を指定する必要があります

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

SELECT TerritoryName, OrderDate, 
       -- Specify the previous OrderDate in the window
       ___(OrderDate) 
       -- Over the window, partition by territory & order by order date
       ___(___ BY ___ ___ BY ___) AS PreviousOrder,
       -- Specify the next OrderDate in the window
       ___(OrderDate) 
       -- Create the partitions and arrange the rows
       ___ AS NextOrder
FROM Orders
コードを編集して実行