Ostatnio zaktualizowane 2023/02/26 przez admin
Funkcja SQL Server LAG. Jak prawidłowo korzystać z funkcji?
Funkcja SQL Server LAG służy do porównywania wierszy w zapytaniu. Pozwala to na wyświetlanie danych w określonym porządku, co jest przydatne w przypadku analizowania danych. Funkcja LAG pozwala również na porównywanie danych z poprzedniego wiersza. Funkcja LAG zwraca wartość z rekordu poprzedniego, lub określonego przez nas w ramach argumentów.
Składnia dla funkcji SQL Server LAG
LAG (scalar_expression [, offset] [, default])
[OVER (order_by_clause)]
- Scalar_expression jest wyrażeniem skalarnym, które określa wartość, którą chcemy porównać.
- Offset jest opcjonalnym parametrem, który określa, o ile wierszy chcemy porównać.
- Default jest opcjonalnym parametrem, który określa wartość, która ma zostać zwrócona, jeśli nie ma wiersza do porównania.
Przykład użycia funkcji LAG
SELECT
ProductName,
Price,
LAG(Price, 1, 0) OVER (ORDER BY ProductName) AS PreviousPrice
FROM
Products
W tym przykładzie funkcja LAG porównuje cenę produktu z ceną poprzedniego produktu. Jeśli nie ma poprzedniego produktu, zostanie zwrócona wartość 0.
Jak może wyglądać przykład na bazie AdventureWorks?
SELECT UnitPrice,
LAG(UnitPrice,1,2) OVER (ORDER BY ProductId) AS PreviousPrice
FROM [AdventureWorks2016_EXT].[Sales].[SalesOrderDetail] s;