SQLize Online / PHPize Online  /  SQLtest Online

A A A
Share      Blog   Popular
Copy Format Clear
CREATE TABLE Staff ( staff_id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(100), salary INT, email VARCHAR(100), birthday DATE, jobtitle_id INT ); INSERT INTO Staff(name, salary, email, birthday, jobtitle_id) VALUES ('Иванов Сергей', 100000, 'test@test.ru', '1990-03-03', 1), ('Петров Пётр', 60000, 'petr@test.ru', '2000-12-01', 7), ('Сидоров Василий', 80000, 'test@test.ru', '1999-02-04', 6), ('Максимов Иван', 70000, 'ivan.m@test.ru', '1997-10-02', 4), ('Попов Иван', 120000, 'popov@test.ru', '2001-04-25', 5); CREATE TABLE Jobtitles ( jobtitle_id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(100) ); INSERT INTO Jobtitles(name) VALUES ('Разработчик'), ('Системный аналитик'), ('Менеджер проектов'), ('Системный администратор'), ('Руководитель группы'), ('Инжинер тестирования'), ('Сотрудник группы поддержки'); /*Напишите запрос, с помощью которого можно найти дубли в поле email из таблицы Sfaff*/ SELECT email, COUNT(email) AS Cnt FROM Staff GROUP BY email HAVING Cnt > 1; /*Напишите запрос,с помощью которого можно определить возраст каждого сотрудника из таблицы Staff на момент запроса*/ SELECT name, (YEAR(CURRENT_DATE)-YEAR(birthday))-(RIGHT(CURRENT_DATE,5)<RIGHT(birthday, 5)) AS Age FROM Staff ORDER BY name; /*Напишите запрос, с помощью которого можно определить должность (Jobtitles.name) со вторым по величине уровнем зарплаты.*/ SELECT Jobtitles.name FROM Staff INNER JOIN Jobtitles ON Staff.jobtitle_id = Jobtitles.jobtitle_id WHERE salary < (SELECT MAX(salary) FROM Staff) LIMIT 1; SELECT *, IF(DAYOFYEAR(NOW()) > DAYOFYEAR(birthday), YEAR(NOW()) - YEAR(birthday), YEAR(NOW()) - YEAR(birthday) -1) AS age FROM Staff; /* Напишите запрос, с помощью которого можно определить должность (Jobtitles.name) со вторым по величине уровнем зарплаты. */ SELECT MAX(salary) FROM Staff; /* sdvvvvvvvvНапишитеdssssssssssssssssss запрос, с помощью которого можно определить должность (Jobtitles.name) со вторым по величине уровнем зарплаты. */ SELECT Jobtitles.name FROM Staff INNER JOIN Jobtitles ON Staff.jobtitle_id = Jobtitles.jobtitle_id WHERE salary < (SELECT MAX(salary) FROM Staff) SELECT Jobtitles.name FROM Staff INNER JOIN Jobtitles ON Staff.jobtitle_id = Jobtitles.jobtitle_id WHERE salary = (SELECT MAX(salary) FROM (SELECT DISTINCT TOP (2) salary FROM Staff ORDER BY salary DESC) T); WITH T AS (SELECT *, DENSE_RANK() OVER (ORDER BY salary DESC) AS Rnk FROM Staff) SELECT name FROM T WHERE Rnk = 2;

Stuck with a problem? Got Error? Ask ChatGPT!

Copy Clear