Hi! Could we please enable some services and cookies to improve your experience and our website?

SQLize | PHPize | SQLtest

Online Sandbox for SQL and PHP: Write, Run, Test, and Share SQL Queries and PHP Code

A A A
Login    Share code      Blog   FAQ
Copy Format Clear
-- Создание таблицы DEPARTMENT CREATE TABLE department ( ID NUMBER PRIMARY KEY, name VARCHAR2(100) ); -- Вставка данных INSERT INTO department (id, name) VALUES (1, 'pos'); INSERT INTO department (id, name) VALUES (2, 'auto'); INSERT INTO department (id, name) VALUES (3, 'card'); -- Создание таблицы EMPLOYEE CREATE TABLE employee ( ID NUMBER PRIMARY KEY, DEPARTMENT_ID NUMBER, CHIEF_ID NUMBER, NAME VARCHAR2(100), SALARY NUMBER, FOREIGN KEY (DEPARTMENT_ID) REFERENCES department(ID), FOREIGN KEY (CHIEF_ID) REFERENCES employee(ID) ); -- Вставка данных INSERT INTO employee (ID, DEPARTMENT_ID, CHIEF_ID, NAME, SALARY) VALUES (1, 1, NULL, 'John', 150000); INSERT INTO employee (ID, DEPARTMENT_ID, CHIEF_ID, NAME, SALARY) VALUES (2, 2, NULL, 'Max', 145000); INSERT INTO employee (ID, DEPARTMENT_ID, CHIEF_ID, NAME, SALARY) VALUES (3, 3, NULL, 'Bob', 160000); INSERT INTO employee (ID, DEPARTMENT_ID, CHIEF_ID, NAME, SALARY) VALUES (4, 1, 1, 'Tom', 60000); INSERT INTO employee (ID, DEPARTMENT_ID, CHIEF_ID, NAME, SALARY) VALUES (5, 2, 2, 'Sam', 60000); INSERT INTO employee (ID, DEPARTMENT_ID, CHIEF_ID, NAME, SALARY) VALUES (6, 3, 3, 'Fedor', 50000); INSERT INTO employee (ID, DEPARTMENT_ID, CHIEF_ID, NAME, SALARY) VALUES (7, 1, 1, 'Sasha', 60000); INSERT INTO employee (ID, DEPARTMENT_ID, CHIEF_ID, NAME, SALARY) VALUES (8, 2, 2, 'Alex', 40000); INSERT INTO employee (ID, DEPARTMENT_ID, CHIEF_ID, NAME, SALARY) VALUES (9, 3, 3, 'Doka', 45000); INSERT INTO employee (ID, DEPARTMENT_ID, CHIEF_ID, NAME, SALARY) VALUES (10, 3, 3, 'Doka', 45000); INSERT INTO employee (ID, DEPARTMENT_ID, CHIEF_ID, NAME, SALARY) VALUES (11, 1, 1, 'Zoro', 50000); INSERT INTO employee (ID, DEPARTMENT_ID, CHIEF_ID, NAME, SALARY) VALUES (12, 2, 2, 'Awon', 35000); INSERT INTO employee (ID, DEPARTMENT_ID, CHIEF_ID, NAME, SALARY) VALUES (13, 3, 3, 'Zow', 70000); INSERT INTO employee (ID, DEPARTMENT_ID, CHIEF_ID, NAME, SALARY) VALUES (14, 3, 3, 'Zow', 70000); INSERT INTO employee (ID, DEPARTMENT_ID, CHIEF_ID, NAME, SALARY) VALUES (15, 1, 1, 'Sasha', 60000); INSERT INTO employee (ID, DEPARTMENT_ID, CHIEF_ID, NAME, SALARY) VALUES (16, 2, 2, 'Sam', 60000); -- Выборка данных SELECT * FROM department; SELECT * FROM employee; --Задание 1 SELECT department_name, name FROM ( SELECT a.department_id, b.name as department_name, a.id, a.name, ROW_NUMBER() OVER (PARTITION BY a.department_id order by a.id DESC) as MARK FROM employee a LEFT JOIN department b ON a.department_id = b.id ) where mark = 1 ; --Задание 2 SELECT department_name FROM ( SELECT department_name, sum(ZW_FLG) as zw_sum_flg FROM ( SELECT b.name as department_name, CASE WHEN LOWER(a.name) LIKE '%z%' AND LOWER(a.name) LIKE '%w%' THEN 1 ELSE 0 END AS ZW_FLG FROM employee a LEFT JOIN department b ON a.department_id = b.id ) GROUP BY DEPARTMENT_NAME ) WHERE zw_sum_flg = 0 ; --Задание 3 WITH A AS ( SELECT id, name, salary, department_id, ROW_NUMBER() OVER (PARTITION BY department_id ORDER BY salary, id DESC) AS MARK FROM employee ) SELECT a.name, b.name AS next_name, b.salary AS next_salary FROM A LEFT JOIN A B ON a.department_id = b.department_id AND a.MARK + 1 = b.MARK ORDER BY a.name ; --Задание 4 SELECT name, total, SUM(total) OVER (ORDER BY TOTAL) as cum_total FROM ( SELECT b.name, SUM(salary) as total FROM employee a LEFT JOIN department b ON a.department_id = b.id GROUP BY b.name ) ; --Задание 6 DELETE FROM employee WHERE (name, chief_id, salary, department_id, id) NOT IN ( SELECT name, chief_id, salary, department_id, min(id) FROM employee GROUP BY name, chief_id, salary, department_id ); SELECT * FROM employee;

Stuck with a problem? Got Error? Ask AI support!

Copy Clear