Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

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

.docx
Скачиваний:
10
Добавлен:
17.04.2018
Размер:
4.15 Mб
Скачать

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, ' Инночкина ');

Соседние файлы в папке БД_Oracle