sazzad37 Ответов: 3

Вам нужен SQL-запрос, чтобы узнать название компании, которая дает самую высокую зарплату своим сотрудникам


table employee(#emp_name, city, salary);
table salary(salary,#city);
table company(#Company_name, city);

Find out the Company Name who gives Highest Salary to their Employees.


Что я уже пробовал:

Выбрать сумма(электронная.Зарплата) от работника, е, зарплата, как с компанией, как C, где E.город = С. города и адреса электронной.город = гр.город

Peter Leow

Когда я прочитал название, то подумал, что вы ищете компанию с самым высокооплачиваемым сотрудником. Тем не менее, ваше заявление sql предполагает, что вы пытаетесь найти компанию, которая заплатила самую высокую общую сумму заработной платы всем своим сотрудникам, не так ли? В этом нет особого смысла. Компании с большим количеством сотрудников, как правило, платят больше в целом по сравнению с компаниями с меньшим количеством сотрудников. Чего именно вы хотите достичь? Просто любопытно.

Afzaal Ahmad Zeeshan

Просто шучу: Попробуйте fortune 500. :-)

3 Ответов

Рейтинг:
2

Wendelius

Поскольку это похоже на домашнее задание, я не пишу полный ответ...

Ну, в принципе, вы близки. Просто добавьте название компании к SELECT список и GROUP BY оно. Затем закажите набор с помощью ORDER BY пункт. Поскольку вы ищете самую высокую сумму, упорядочивайте ее в порядке убывания. И последний шаг, возьмите только первый ряд. Для этого вы можете использовать TOP.

Однако дизайн стола выглядит немного странно. Сотрудник не имеет прямого отношения к компании, но связь идет через город. Кроме того, у вас есть отдельная таблица заработной платы, почему это так?


sazzad37

Это не домашнее задание, на самом деле я изучаю SQL, чтобы подготовиться к собеседованию. Я где-то нашел эту проблему и пытаюсь ее решить. Правильно ли работает следующий измененный запрос? Спасибо за ваш ценный ответ.

Выберите Имя_компании, сумма(электронная.Зарплата) как Highest_Salary от работника, е, зарплата, как с компанией, как C, где E.город = С. города и адреса электронной.город = гр.городская группа по приказу Имя_компании по Highest_Salary деск лимит 1

Wendelius

Кажется, все правильно. В зависимости от используемой базы данных может быть неправильно использовать как псевдоним таблицы, так и некоторые базы данных используют TOP и некоторые предельные предложения.

sazzad37

Не могли бы вы поделиться со мной правильным?

Wendelius

Я имею в виду, что запрос выглядит нормально. Если у вас есть база данных, просто попробуйте запустить ее.

sazzad37

Хорошо, Спасибо

Рейтинг:
2

Member 13458387

выберите имя_компании от компании естественное соединение зарплата, где зарплата = (выбрать Макс(оклад) от зарплаты);


Richard Deeming

Если ОП все еще ждет кого-то, чтобы сделать свою домашнюю работу 10 месяцев спустя- он провалил курс!

Рейтинг:
0

vijay vk

Является ли город общим полем во всех таблицах? если это так, вы можете использовать Join запрос для таблицы зарплата.

Попробуйте этот запрос, он будет работать

Выберите C. ИМЯ_КОМПАНИИ,сумма(С. зарплата) от ИМЯ_КОМПАНИИ с левое соединение оклада С на С. город = город группа С. К. приказ ИМЯ_КОМПАНИИ по убыванию

Спасибо,
Виджей