SQLのOVER関数の使い方は何ですか?
SQLの中では、OVER関数がウィンドウ関数の結果を計算するために使用されます。ウィンドウ関数は、クエリ結果の特定のウィンドウまたはグループで計算操作を実行するための関数の一種です。OVER関数は、ウィンドウ関数と組み合わせて使用され、指定されたグループやウィンドウに対してクエリ結果を計算し、計算結果を返します。
SELECT文のSELECT句でOVER関数を使用する場合、その構文は次のようになります:
窗口函数() OVER (PARTITION BY 列名1, 列名2,... ORDER BY 列名3, 列名4,...)
窓関数はSUMやAVG、COUNTなどの集約関数の一種であり、PARTITION BY句はグループ化する列を指定するために、ORDER BY句は並べ替える列を指定するために使用されます。
OVER関数は、クエリの結果を複数のグループやウィンドウに分割し、それぞれのグループやウィンドウにウィンドウ関数を適用して計算する機能です。これを使用して、グループ内の累積値、ランキング、行番号などを計算することができます。
例を挙げると、以下のSalesテーブルがあるとします:
注文ID商品数量価格1
A
10
52
A
5
103
B
8
154
B
12
20
各製品の累計販売数量と累計売上高を計算したい場合は、ウィンドウ関数を使用することができます。
SELECT OrderID, Product, Quantity, Price,
SUM(Quantity) OVER (PARTITION BY Product ORDER BY OrderID) AS TotalQuantity,
SUM(Quantity * Price) OVER (PARTITION BY Product ORDER BY OrderID) AS TotalPrice
FROM Sales;
ここでは、SUM関数をウィンドウ関数として使用し、PARTITION BY句でデータをProductごとにグループ化し、次にOrderIDで並べ替えます。結果は以下のとおりです:
注文番号製品数量価格総数量総価格1
A
10
5
10
502
A
5
10
15
1003
B
8
15
8
1204
B
12
20
20
360
TotalQuantityとTotalPriceの列では、各製品の累計販売数量と累計販売額がそれぞれ計算されています。