Oracle - MS Server / БД_Oracle / Лаб7оракл
.docx
1)

2)

3)

4)

5)

6)

Виды аналитических функций
1)

Функции ранжирования

Функции подсчета долей



MY AGREGATION FUNCTIONS
1) INSERT INTO SELLERS VALUES (21, 20, 'Крепость', 'Химки', '567858', '12-nov-2016', '15-oct-2020', '3-mar-2016', 33);
SELECT GoodsInvoice,GoodsID,Begins,Ends, SUM(Price) OVER (PARTITION BY Begins,Ends) sum_Price
FROM SELLERS;

2) SELECT GoodsInvoice,GoodsID,Begins,Ends, SUM(Price) OVER () sum_Price
FROM SELLERS;

3) SELECT GoodsInvoice,GoodsID,Begins,Ends, SUM(Price) OVER (PARTITION BY Ends,Begins ORDER BY GoodsID) sum_Price
FROM SELLERS;

4)INSERT INTO SELLERS VALUES (22, 3, 'Дон', 'Псков', '143458', '01-jul-2014', '01-mar-2020', '28-feb-2016', 15.6);
SELECT GoodsInvoice,GoodsID,Begins,Ends, SUM(Price) OVER (PARTITION BY Ends,Begins ORDER BY GoodsID
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) sum_Price
FROM SELLERS;
cм.12,13
и 15,16.
5) SELECT GoodsInvoice,GoodsID,Begins,Ends, SUM(Price) OVER (ORDER BY GoodsID
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) sum_Price,
SUM(Price) OVER (ORDER BY GoodsID
RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) range_sal
FROM SELLERS;

6) SELECT GoodsInvoice,GoodsID,Begins,Ends, FIRST_VALUE(Price) OVER (ORDER BY GoodsID
ROWS BETWEEN 2 PRECEDING AND CURRENT ROW) FROWS,
LAST_VALUE(Price) OVER (ORDER BY GoodsID
ROWS BETWEEN 2 PRECEDING AND CURRENT ROW) LROWS,
FIRST_VALUE(Price) OVER (ORDER BY GoodsID
RANGE BETWEEN 2 PRECEDING AND CURRENT ROW) FRANGE,
LAST_VALUE(Price) OVER (ORDER BY GoodsID
RANGE BETWEEN 2 PRECEDING AND CURRENT ROW) LRANGE
FROM SELLERS;

7) SELECT GoodsInvoice,GoodsID,Begins,Ends, FIRST_VALUE(Price) OVER (ORDER BY Begins
RANGE BETWEEN INTERVAL '2' MONTH PRECEDING AND CURRENT ROW) avg_sal
FROM SELLERS;

8) Функции ранжирования
SELECT GoodsInvoice,GoodsID,Begins,Ends,
ROW_NUMBER () OVER (ORDER BY Price DESC) AS Pricebacknumber,
ROW_NUMBER () OVER (ORDER BY Price) AS Pricenumber,
RANK() OVER (ORDER BY Price) AS Pricerank,
DENSE_RANK() OVER (ORDER BY Price) AS Pricedenserank
FROM SELLERS;

9) Функции подсчета долей
SELECT GoodsInvoice,GoodsID,Begins,Ends,Price,
RATIO_TO_REPORT(Price) OVER () AS Priceshare
FROM SELLERS;
DELETE FROM PRODUCTS;
INSERT INTO PRODUCTS VALUES (1, 'Корвалол', 1, 768);
INSERT INTO PRODUCTS VALUES (2, 'Валидол', 1, 43);
INSERT INTO PRODUCTS VALUES (3, 'Уголь', 1, 23);
INSERT INTO PRODUCTS VALUES (4, 'Ношпа', 0, 0);
INSERT INTO PRODUCTS VALUES (5, 'Зеленка', 1, 123);
INSERT INTO PRODUCTS VALUES (6, 'Йод', 1, 58);
INSERT INTO PRODUCTS VALUES (7, 'Грудной сбор', 1, 654);
INSERT INTO PRODUCTS VALUES (8, 'Пумпан', 0, 0);
INSERT INTO PRODUCTS VALUES (9, 'Капотен', 1, 54);
INSERT INTO PRODUCTS VALUES (10, 'Залаин', 1, 87);
INSERT INTO PRODUCTS VALUES (11, 'Левомиколь', 1, 546);
INSERT INTO PRODUCTS VALUES (12, 'Солкосерил', 1, 8);
INSERT INTO PRODUCTS VALUES (13, 'Валосердин', 0, 0);
INSERT INTO PRODUCTS VALUES (14, 'Валидол', 1, 45);
INSERT INTO PRODUCTS VALUES (15, 'Аспирин', 1, 4);
INSERT INTO PRODUCTS VALUES (16, 'Звездочка', 1, 1);
INSERT INTO PRODUCTS VALUES (17, 'Терафлю', 1, 96);
INSERT INTO PRODUCTS VALUES (18, 'Анаферон', 0, 0);
INSERT INTO PRODUCTS VALUES (19, 'Эргоферон', 0, 0);
INSERT INTO PRODUCTS VALUES (20, 'Анальгин', 1, 32);
DELETE FROM SELLERS;
INSERT INTO SELLERS VALUES (1, 1, 'АнтиКо', 'Зеленоград', '3426556', '15-aug-2014', '15-oct-2016', '28-feb-2016', 36.0);
INSERT INTO SELLERS VALUES (2, 1, 'Тон', 'Тверь', '675366', '20-dec2014', '20-aug-2016', '28-feb-2016', 35.1);
INSERT INTO SELLERS VALUES (3, 2, 'Мед', 'Красноярск', '8796782', '30-dec-2014', '30-sep-2017', '28-dec-2016', 100.0);
INSERT INTO SELLERS VALUES (4, 3, 'Дон', 'Псков', '143458', '01-jul-2014', '01-mar-2020', '28-feb-2016', 15.6);
INSERT INTO SELLERS VALUES (5, 4, 'Кор', 'Москва', '14348', '01-oct-2013', '01-nov-2020', '9-dec-2020', 20);
INSERT INTO SELLERS VALUES (6, 14, 'Кардио', 'Москва', '1456758', '05-sep-2015', '01-dec-2027', '3-mar-2016', 45);
INSERT INTO SELLERS VALUES (7, 15, 'МедиК', 'Новомосковск', '16573458', '01-mar-2016', '01-jan-2020', '15-jan-2016', 32.9);
INSERT INTO SELLERS VALUES (8, 19, 'Тверь', 'Малино', '14323458', '01-jan-2014', '01-feb-2021', '28-jan-2016', 60);
INSERT INTO SELLERS VALUES (9, 8, 'Лес', 'Менделеево', '18798', '01-jan-2016', '30-dec-2017', '3-mar-2016', 12);
INSERT INTO SELLERS VALUES (10, 12, 'Тор', 'Москва', '146578', '30/08/2012', '01/10/2020', '28/02/2016', 34);
INSERT INTO SELLERS VALUES (11, 6, 'Мера', 'Псков', '65458', '08-oct-2013', '01-jan-2017', '14-mar-2016', 65.8);
INSERT INTO SELLERS VALUES (12, 7, 'Тетра', 'Тверь', '14234658', '04-oct-2016', '05-nov-2020', '8-mar-2016', 97);
INSERT INTO SELLERS VALUES (13, 10, 'Икс', 'Зеленоград', '234658', '12-oct-2016', '01-jan-2017', '10-mar-2016', 52.3);
INSERT INTO SELLERS VALUES (14, 5, 'Теле', 'Зеленоград', '15445', '01-nov-2016', '01-jan-2019', '1-mar-2016', 29);
INSERT INTO SELLERS VALUES (15, 16, 'Маг', 'Псков', '154143', '30-jan-2013', '30-nov-2020', '3-mar-2016', 101.9);
INSERT INTO SELLERS VALUES (16, 13, 'Знахарь', 'Химки', '165488', '29-oct-2016', '29-nov-2017', '20-feb-2016', 45.6);
INSERT INTO SELLERS VALUES (17, 7, 'Веда', 'Москва', '1434658', '03-jan-2014', '02-oct-2020', '15-feb-2016', 38);
INSERT INTO SELLERS VALUES (18, 18, 'Миля', 'Ростов', '980458', '13-oct-2012', '01-oct-2017', '6-feb-2016', 63);
INSERT INTO SELLERS VALUES (19, 20, 'Крепость', 'Химки', '567858', '12-nov-2016', '15-oct-2020', '3-mar-2016', 33);
INSERT INTO SELLERS VALUES (20, 9, 'Рентген', 'Псков', '14878', '25-nov-2016', '18-oct-2018', '13-feb-2016', 76.6);
DELETE FROM BUY;
INSERT INTO BUY VALUES (2, 3, 1, '01-mar-2016', 252.0, 'Антипов', 2, 'Инночкина');
INSERT INTO BUY VALUES (4, 1, 2, '02-mar-2016', 315.9, 'Дорина', 1, 'Кремер');
INSERT INTO BUY VALUES (1, 2, 3, '03-mar-2016', 500.0, 'Антипов', 3, 'Конькова');
INSERT INTO BUY VALUES (3, 1, 4, '04-mar-2016', 156.0, 'Семантьев', 4, 'Демченко');
INSERT INTO BUY VALUES (8, 5, 5, '02-mar-2016', 765.0, 'Семантьев', 76, ' Инночкина ');
INSERT INTO BUY VALUES (20, 10, 6, '03-mar-2016', 63245.45, ' Дорина ', 23, ' Конькова ');
INSERT INTO BUY VALUES (18, 6, 7, '12-mar-2016', 6764.0, 'Семантьев', 78, 'Демченко');
INSERT INTO BUY VALUES (17, 7, 8, '14-mar-2016', 4321.0, ' Клименко ', 5, ' Кремер ');
INSERT INTO BUY VALUES (14, 20, 9, '04-mar-2016', 567.44, 'Семантьев', 34, ' Конькова ');
INSERT INTO BUY VALUES (19, 6, 10, '10-mar-2016', 432.5, 'Клименко', 65, ' Конькова ');
INSERT INTO BUY VALUES (6, 9, 11, '08-mar-2016', 4781.0, 'Семантьев', 12, 'Демченко');
INSERT INTO BUY VALUES (9, 11, 12, '08-mar-2016', 7609.0, ' Дорина ', 8, ' Кремер ');
INSERT INTO BUY VALUES (11, 14, 13, '05-mar-2016', 468.9, ' Клименко ', 86, 'Демченко');
INSERT INTO BUY VALUES (5, 12, 14, '07-mar-2016', 4578.6, ' Антипов ', 33, 'Демченко');
INSERT INTO BUY VALUES (13, 16, 15, '01-mar-2016', 8562.4, 'Семантьев', 32, ' Инночкина ');
INSERT INTO BUY VALUES (16, 13, 16, '02-mar-2016', 1546.0, ' Антипов ', 56, ' Инночкина ');
INSERT INTO BUY VALUES (7, 10, 17, '06-mar-2016', 3245.0, ' Антипов ', 10, ' Конькова ');
INSERT INTO BUY VALUES (10, 7, 18, '07-mar-2016', 675.0, 'Семантьев', 23, ' Инночкина ');
INSERT INTO BUY VALUES (15, 9, 19, '02-mar-2016', 365.45, ' Дорина ', 45, 'Демченко');
INSERT INTO BUY VALUES (12, 20, 20, '04-mar-2016', 245.27, 'Семантьев', 49, ' Инночкина ');
