
Oracle - MS Server / БД_Oracle / Лаб7оракл
.docx1)
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, ' Инночкина ');