SQLize
Online
/
PHPize Online
/
SQLtest Online
A
A
A
Share
Donate
Blog
Popular
Donate
A
A
A
Share
Blog
Popular
SQLize.online is a free online SQL environment for quickly running, experimenting with and sharing code.
You can run your SQL code on top of the most popular RDBMS including MySQL, MariaDB, SQLite, PostgreSQL, Oracle and Microsoft SQL Server.
SQL code:
Upload
Copy
Format
Clear
create table providers (id serial primary key, name varchar(100)); create table manufacturers (id serial primary key, name varchar(100)); create table countries (id serial primary key, name varchar(100)); create table products (id serial primary key, type varchar(100), name varchar(100), year_of_issue date, date_of_sale date, providers_id int references providers(id), manufacturers_id int references manufacturers(id), country_id int references countries(id), price int, target_audience varchar(100)); create table customers (id serial primary key, lastname varchar(100), firstname varchar(100), city varchar(100), products_id int references products(id)); insert into providers (name) values ('ООО "ТехноМаркет"'), ('ЗАО "Энергия Плюс"'), ('ООО "Глобал Трейд"'), ('ПАО "ТрансСнаб"'), ('ЗАО "Альфа Логистик"'), ('ООО "ИнтерСнаб"'), ('ПАО "ЮниТранс"'), ('ООО "Мегаполис-Сервис"'), ('ЗАО "СеверТорг"'), ('ПАО "Логистик-Системс"'); insert into manufacturers (name) values ('ОАО "АвтоМаш"'), ('ЗАО "Электроника-Про"'), ('ООО "Кварц-Тех"'), ('ПАО "ПромСтрой"'), ('ОАО "ГидроСистемы"'), ('ООО "МеталлИндустрия"'), ('ЗАО "ТехноТранс"'), ('ПАО "Энергетика-М"'), ('ООО "Кристалл-Инжиниринг"'), ('ОАО "СтройПроект"'); insert into countries (name) values ('Россия'), ('США'), ('Германия'), ('Франция'), ('Италия'), ('Китай'), ('Япония'), ('Бразилия'), ('Индия'), ('Австралия'); insert into products (id, type, name, year_of_issue, date_of_sale, providers_id, manufacturers_id, country_id, price, target_audience) VALUES (1, 'духи', 'Chanel No. 5', '1921-01-01', '2024-12-13', 1, 1, 1, 15000, 'женщины'), (2, 'духи', 'Dior Sauvage', '2015-01-01', '2020-11-13', 2, 2, 2, 12000, 'мужчины'), (3, 'туалетная вода', 'Acqua di Gio', '1996-01-01', '2021-10-01', 3, 3, 3, 8000, 'мужчины'), (4, 'парфюмированная вода', 'Guerlain La Petite Robe Noire', '2012-01-01', '2002-05-20', 4, 4, 4, 9500, 'женщины'), (5, 'духи', 'Yves Saint Laurent Black Opium', '2014-01-01', '2018-03-14', 5, 5, 5, 11000, 'женщины'), (6, 'туалетная вода', 'Hugo Boss Bottled', '1998-01-01', '2000-11-13', 6, 6, 6, 9000, 'мужчины'), (7, 'парфюмированная вода', 'Tom Ford Black Orchid', '2006-01-01', '2024-01-17', 7, 7, 7, 14000, 'женщины'), (8, 'духи', 'Chanel Bleu de Chanel', '2010-01-01', '2024-12-13', 1, 1, 1, 13500, 'мужчины'), (9, 'туалетная вода', 'CK One', '1994-01-01', '2023-08-15', 8, 8, 8, 5000, 'дети'), (10, 'парфюмированная вода', 'Lancome La Vie Est Belle', '2012-01-01', '2013-08-30', 9, 9, 9, 10500, 'женщины'), (11, 'духи', 'Creed Aventus', '2010-01-01', '2019-12-19', 10, 10, 10, 25000, 'мужчины'), (12, 'туалетная вода', 'Davidoff Cool Water', '1988-01-01', '2024-12-13', 1, 2, 3, 4500, 'мужчины'), (13, 'парфюмированная вода', 'Chloe Eau de Parfum', '2008-01-01', '2012-09-29', 4, 3, 4, 11500, 'женщины'), (14, 'духи', 'Tom Ford Tobacco Vanille', '2007-01-01', '2007-12-31', 5, 6, 7, 22000, 'дети'), (15, 'туалетная вода', 'Viktor and Rolf Flowerbomb', '2005-01-01', '2024-12-20', 6, 8, 8, 13000, 'женщины'), (16, 'парфюмированная вода', 'Bvlgari Omnia Crystalline', '2005-01-01', '2007-11-22', 7, 9, 9, 9500, 'женщины'), (17, 'духи', 'Hermes Terre', '2006-01-01', '2009-01-25', 8, 10, 1, 17000, 'мужчины'), (18, 'туалетная вода', 'Jean Paul Gaultier Le Male', '1995-01-01', '2000-02-27', 9, 1, 2, 8000, 'мужчины'), (19, 'парфюмированная вода', 'Prada Candy', '2011-01-01', '2024-06-06', 10, 4, 6, 12000, 'женщины'), (20, 'духи', 'Baby Dior', '2013-01-01', '2023-04-11', 2, 5, 3, 5500, 'дети'); insert into customers (id, lastname, firstname, city, products_id) VALUES (1, 'Иванов', 'Алексей', 'Москва', 1), (2, 'Петров', 'Иван', 'Санкт-Петербург', 2), (3, 'Смирнова', 'Мария', 'Новосибирск', 3), (4, 'Кузнецова', 'Екатерина', 'Екатеринбург', 4), (5, 'Попова', 'Анна', 'Нижний Новгород', 5), (6, 'Васильев', 'Михаил', 'Краснодар', 6), (7, 'Михайлова', 'Ольга', 'Ростов-на-Дону', 7), (8, 'Новиков', 'Дмитрий', 'Казань', 8), (9, 'Ковалев', 'Юрий', 'Челябинск', 9), (10, 'Соловьева', 'Ирина', 'Воронеж', 10), (11, 'Григорьев', 'Петр', 'Уфа', 11), (12, 'Дмитриева', 'Светлана', 'Пермь', 12), (13, 'Федорова', 'Татьяна', 'Красноярск', 13), (14, 'Сергеев', 'Андрей', 'Тюмень', 14), (15, 'Шевченко', 'Наталья', 'Омск', 15), (16, 'Беляев', 'Владимир', 'Саратов', 16), (17, 'Захарова', 'Елена', 'Волгоград', 17), (18, 'Яковлев', 'Константин', 'Тверь', 18), (19, 'Крылова', 'Марина', 'Ярославль', 19), (20, 'Романов', 'Григорий', 'Арзамас', 20); ALTER TABLE products ADD COLUMN shipment_date DATE, -- Дата отгрузки товара ADD COLUMN regular_supply BOOLEAN; -- Флаг регулярной поставки UPDATE products SET shipment_date = '2024-01-15', regular_supply = TRUE WHERE id = 1; UPDATE products SET shipment_date = '2020-11-10', regular_supply = FALSE WHERE id = 2; UPDATE products SET shipment_date = '2021-10-01', regular_supply = TRUE WHERE id = 3; UPDATE products SET shipment_date = '2022-05-20', regular_supply = FALSE WHERE id = 4; UPDATE products SET shipment_date = '2018-03-14', regular_supply = TRUE WHERE id = 5; UPDATE products SET shipment_date = '2000-11-13', regular_supply = FALSE WHERE id = 6; UPDATE products SET shipment_date = '2024-01-17', regular_supply = TRUE WHERE id = 7; UPDATE products SET shipment_date = '2024-12-13', regular_supply = TRUE WHERE id = 8; UPDATE products SET shipment_date = '2023-08-15', regular_supply = FALSE WHERE id = 9; UPDATE products SET shipment_date = '2013-08-30', regular_supply = TRUE WHERE id = 10; UPDATE products SET shipment_date = '2019-12-19', regular_supply = FALSE WHERE id = 11; UPDATE products SET shipment_date = '2024-12-13', regular_supply = TRUE WHERE id = 12; UPDATE products SET shipment_date = '2012-09-29', regular_supply = FALSE WHERE id = 13; UPDATE products SET shipment_date = '2007-12-31', regular_supply = TRUE WHERE id = 14; UPDATE products SET shipment_date = '2024-12-20', regular_supply = FALSE WHERE id = 15; UPDATE products SET shipment_date = '2007-11-22', regular_supply = TRUE WHERE id = 16; UPDATE products SET shipment_date = '2009-01-25', regular_supply = FALSE WHERE id = 17; UPDATE products SET shipment_date = '2000-02-27', regular_supply = TRUE WHERE id = 18; UPDATE products SET shipment_date = '2024-06-06', regular_supply = FALSE WHERE id = 19; UPDATE products SET shipment_date = '2023-04-11', regular_supply = TRUE WHERE id = 20; CREATE OR REPLACE FUNCTION calculate_regular_supply_share_by_name( product_name VARCHAR, -- Название парфюмерии input_shipment_date DATE -- Заданный день отгрузки ) RETURNS NUMERIC AS $$ DECLARE total_count INT; -- Общее количество поставок для данной парфюмерии regular_count INT; -- Количество регулярных поставок для данной парфюмерии share NUMERIC; -- Доля регулярных поставок BEGIN -- Вычисление общего количества поставок для данной парфюмерии по указанной дате SELECT COUNT(*) INTO total_count FROM products WHERE name = product_name -- Фильтруем по названию парфюмерии AND shipment_date <= input_shipment_date; -- Поставки до или на указанную дату -- Если общее количество поставок равно 0, возвращаем 0 IF total_count = 0 THEN RETURN 0; END IF; -- Вычисление количества регулярных поставок для данной парфюмерии по указанной дате SELECT COUNT(*) INTO regular_count FROM products WHERE name = product_name -- Фильтруем по названию парфюмерии AND shipment_date <= input_shipment_date AND regular_supply = TRUE; -- Поставки, которые являются регулярными -- Расчёт доли регулярных поставок share := regular_count::NUMERIC / total_count::NUMERIC; -- Возвращаем долю RETURN share; END; $$ LANGUAGE plpgsql; SELECT calculate_regular_supply_share_by_name('Chanel No. 5', '2024-12-01');
SQL
Server:
MariaDB 11.4
MariaDB 11.5
MariaDB 10
MariaDB 10 Sakila (ReadOnly)
MySQL 5.7
MySQL 5.7 Sakila (ReadOnly)
MySQL 8.0
MySQL 8.0 Sakila (ReadOnly)
SQLite 3
SQLite 3 Preloaded
PostgreSQL 10 Bookings (ReadOnly)
PostgreSQL 11
PostgreSQL 12
PostgreSQL 13
PostgreSQL 14
PostgreSQL 15
MS SQL Server 2017
MS SQL Server 2019
MS SQL Server 2022
MS SQL Server 2022 AdventureWorks (ReadOnly)
Firebird 4.0
Firebird 4.0 (Employee)
Oracle Database 19c (HR)
Oracle Database 21c
Oracle Database 23c Free
SOQOL
Version
ER Diagram
Preserve result
Stuck with a problem?
Got Error?
Ask ChatGPT!
Result:
Copy
Clear