前後の値
列の値を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