-- Пример 1 SELECT custid, orderid, orderdate, val, FIRST_VALUE(val) OVER ( PARTITION BY custid ORDER BY orderdate, orderid ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) AS first_val, LAST_VALUE(val) OVER ( PARTITION BY custid ORDER BY orderdate, orderid ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) AS last_val FROM Sales.OrderValues; -- Пример 2 CREATE VIEW Sales.OrderTotalsByYearCustShip WITH SCHEMABINDING AS SELECT C.companyname AS customercompany, S.companyname AS shippercompany, YEAR(O.orderdate) AS orderyear, SUM(OD.qty) AS qty, CAST( SUM(OD.qty * OD.unitprice * (1 - OD.discount)) AS NUMERIC(12, 2) ) AS val FROM Sales.Orders AS O JOIN Sales.OrderDetails AS OD ON OD.orderid = O.orderid JOIN Sales.Customers AS C ON O.custid = C.custid JOIN Sales.Shippers AS S ON O.shipperid = S.shipperid GROUP BY YEAR(O.orderdate), C.companyname, S. companyname;