SQL марафон. Задача 5.
Постановка
Нужно найти всех сотрудников, у которых зарплата выше средней зарплаты в таблице employees.
Вывести - все столбцы из таблицы employees.
Сотрудники - таблица employees.
Решения
1️⃣
select e.*
from employees e
where e.salary > (select sum(salary) / count(*) from employees);
2️⃣
with avg_sal as
(select avg(salary) as avg_salary from employees)
select e.*
from avg_sal a
join employees e on e.salary > a.avg_salary;
Опубликуйте свое решение в чатике с тегом #решение5 💬
#задача #sql #марафон
Канал Oracle Developer | Чатик 💬
Постановка
Нужно найти всех сотрудников, у которых зарплата выше средней зарплаты в таблице employees.
Вывести - все столбцы из таблицы employees.
Сотрудники - таблица employees.
Решения
1️⃣
from employees e
where e.salary > (select sum(salary) / count(*) from employees);
2️⃣
(select avg(salary) as avg_salary from employees)
select e.*
from avg_sal a
join employees e on e.salary > a.avg_salary;
Опубликуйте свое решение в чатике с тегом #решение5 💬
#задача #sql #марафон
Канал Oracle Developer | Чатик 💬
🌐 Навигация по темам канала Oracle Developer
📘 Основы
#sql #plsql #теория #архитектура
#функции #секционирование #временныетаблицы
#транзакции #исключения #курсоры
#аналитическиефункции #иерархическиезапросы
#системныепредставления #компиляция #представления #коллекции #циклы
🛠 Практика и задачи
#задача #решениезадачи #asktom
🚀 Оптимизация и производительность
#оптимизация #nestedloops #индекс
🧩 Инструменты и технологии
#тестирование #postgresql #oracle #docker #oracle23c #ide #ai
💼 Карьера и Развитие
#карьера #собеседование #hr #тинькофф #magnit #вкусноиточка #leroymerlin #сбер #яндекс #Эффективность #КарьерныйРост #Denis_Kivillev #Работа
🎓 Дополнительные материалы
#видео #подкаст #аудиоподкаст #конкурс #марафон #юмор
—
В почти 700 (!) постах не мудрено заплутать. Поэтому решил сделать подобие навигации 😉
Не забывайте пользоваться обычным поиском, я не добавил сюда низкочастотные хештеги.
Канал Oracle Developer | Чатик💬
📘 Основы
#sql #plsql #теория #архитектура
#функции #секционирование #временныетаблицы
#транзакции #исключения #курсоры
#аналитическиефункции #иерархическиезапросы
#системныепредставления #компиляция #представления #коллекции #циклы
🛠 Практика и задачи
#задача #решениезадачи #asktom
🚀 Оптимизация и производительность
#оптимизация #nestedloops #индекс
🧩 Инструменты и технологии
#тестирование #postgresql #oracle #docker #oracle23c #ide #ai
💼 Карьера и Развитие
#карьера #собеседование #hr #тинькофф #magnit #вкусноиточка #leroymerlin #сбер #яндекс #Эффективность #КарьерныйРост #Denis_Kivillev #Работа
🎓 Дополнительные материалы
#видео #подкаст #аудиоподкаст #конкурс #марафон #юмор
—
В почти 700 (!) постах не мудрено заплутать. Поэтому решил сделать подобие навигации 😉
Не забывайте пользоваться обычным поиском, я не добавил сюда низкочастотные хештеги.
Канал Oracle Developer | Чатик💬
👍13🔥13❤2
Решение задачи с Java-собеседования
1️⃣ Запрос для получения всех сотрудников вместе с их зарплатными начислениями
Здесь мы используем левое соединение (LEFT JOIN), чтобы отобразить всех сотрудников, даже если у них пока нет выплат.
Что делает запрос:
🔹left join гарантирует, что каждый сотрудник из таблицы Persons будет отображен.
🔹поле amount будет NULL, если у сотрудника нет выплат.
2️⃣ Запрос для получения сотрудников, у которых общий размер выплат превышает 25
Здесь мы используем группировку (GROUP BY) и фильтрацию по агрегированной сумме (HAVING).
Что делает запрос:
🔹SUM(pay.amount) рассчитывает общий размер начислений для каждого сотрудника;
🔹HAVING фильтрует только тех сотрудников, у которых сумма начислений превышает 25;
🔹группировка производится по id и name, чтобы для каждого сотрудника была одна строка;
🔹также используется left join, чтобы учесть новых сотрудников, у которых еще нет выплат (их сумма будет NULL, что при суммировании интерпретируется как 0).
—
Вероятно, джависта можно испугать такой задачкой, но нам Оракл-разработчикам - смешно😁
Зато алгоритмическая секция, может попортить кровушки 🩸
Обсудить в чате 💬
#sql #собеседование #решениезадачи
Канал Oracle Developer| Чат 💬
1️⃣ Запрос для получения всех сотрудников вместе с их зарплатными начислениями
Здесь мы используем левое соединение (LEFT JOIN), чтобы отобразить всех сотрудников, даже если у них пока нет выплат.
select p.id person_id
,p.name
,pay.amount
from persons p
left join payments pay
on p.id = pay.person_id;
Что делает запрос:
🔹left join гарантирует, что каждый сотрудник из таблицы Persons будет отображен.
🔹поле amount будет NULL, если у сотрудника нет выплат.
2️⃣ Запрос для получения сотрудников, у которых общий размер выплат превышает 25
Здесь мы используем группировку (GROUP BY) и фильтрацию по агрегированной сумме (HAVING).
select p.id person_id
,p.name
,sum(pay.amount) total_amount
from persons p
left join payments pay
on p.id = pay.person_id
group by p.id, p.name
having sum(pay.amount) > 25;
Что делает запрос:
🔹SUM(pay.amount) рассчитывает общий размер начислений для каждого сотрудника;
🔹HAVING фильтрует только тех сотрудников, у которых сумма начислений превышает 25;
🔹группировка производится по id и name, чтобы для каждого сотрудника была одна строка;
🔹также используется left join, чтобы учесть новых сотрудников, у которых еще нет выплат (их сумма будет NULL, что при суммировании интерпретируется как 0).
—
Вероятно, джависта можно испугать такой задачкой, но нам Оракл-разработчикам - смешно😁
Зато алгоритмическая секция, может попортить кровушки 🩸
Обсудить в чате 💬
#sql #собеседование #решениезадачи
Канал Oracle Developer| Чат 💬
👍8❤1