rakesh@bbspl.com Ответов: 10

Как получить топ-5 данных о зарплате в sql-запросе


Предположим, у меня есть таблица со столбцом зарплаты

теперь мне нужен один запрос, который возвращает всех сотрудников, имеющих топ-5 зарплат.

Если 33 сотрудника имеют зарплату 30000, то все должны прийти.

Заранее спасибо

10 Ответов

Рейтинг:
83

Rahul Rajat Singh

Это должно сработать. Я проверил его на своей машине

SELECT *
FROM table
WHERE 
(
  sal IN 
  (
    SELECT TOP (5) sal
    FROM table as table1
    GROUP BY sal
    ORDER BY sal DESC
  )
)


sal = столбец зарплаты
table = имя таблицы


Prosan

хороший ответ

rakesh@bbspl.com

Привет, Рахул, Спасибо, но я не хочу использовать в изложении. Это увеличит время выполнения запроса, и я работаю над большой хранимой процедурой. Я хочу использовать некоторые из них, как "с галстуками".

Пожалуйста Предложите

Member 11749499

Этот код не работает пожалуйста ознакомьтесь с ним

asish312

Да.Этот код не работает и возвращает ту же таблицу

Рейтинг:
2

dharan1990

with Result as
(
   select dense_rank () over (order by salary) as 'TopSalary',* from table name
) select * from Result where TopSalary between 1 and 5


Рейтинг:
2

RAHUL22CH

SELECT TOP 5 salary
FROM employee
ORDER BY salary DESC


Рейтинг:
2

bopannavb

Запрос select * from имя_таблицы где зарплата в(Выбрать первые 5 зарплата from имя_таблицы Group по зарплате порядок по убыванию)


Рейтинг:
2

Rajkumar Palnati

Выберите TOP 5 MAX(зарплата) в качестве MaxSal, EmpName
От EmployeeTable
Группа по зарплате, EmpName
Заказ по MaxSal алфавиту


Рейтинг:
1

sunandandutt

Привет это определенно сработает:

select  * from employee where salary in (select distinct top 5 salary from employee order by salary desc)


Выберите топ-5 с именем связей, зарплата из tlevel ORDER BY Salary desc


Member 11781195

этот запрос не идеален...

вопрос

как получить топ-5 зарплат в таблице сотрудников

Рейтинг:
1

bhaskarareddy

привет

SELECT DISTINCT TOP 5 salary
FROM employee
ORDER BY salary DESC


решение 2 Правильно писать как решение 2

согласно решению 2
SELECT *
FROM table
WHERE
(
 salary IN
 (
  SELECT TOP (5) salary
  FROM table as table1
  GROUP BY sal
  ORDER BY sal DESC
 )
)


Rahul Rajat Singh

это даст только топ-5 цифр зарплаты, ему нужны все записи с этими цифрами.

sunandandutt

Друзья мой код будет демонстративно работать любезно Проверьте.

Рейтинг:
1

Oshtri Deka

Попробовать это:
Сделайте внутреннее соединение на вашем подзапросе с желаемым диапазоном зарплаты.

SELECT * FROM yourTable AS T1
INNER JOIN 
(SELECT DISTINCT TOP 5 Salary FROM yourTable ORDER BY Salary DESC) AS T2
ON T1.Salary = T2.Salary 


Приказ по убыванию зарплаты


Рейтинг:
0

AshishChaudha

Пожалуйста, перейдите по ссылке.. попробуйте поискать в google, если вы не получите свой ответ, а затем напишите в CP

Как получить топ-5 данных о зарплате в sql-запросе[^]


Рейтинг:
0

Manjunath Jakkandi

Скажи П таблица содержит emp_id, зарплата, ранг, dept_id в виде столбцов и имеет некоторые данные в нем.

1. Получить максимальную зарплату из таблицы сотрудников.

SELECT MAX(salary) FROM employee;


2. Чтобы получить максимум зарплата из таблицы employee в отношении деп
SELECT MAX(slary), dept_id from employee group by dept_id;


3. Чтобы получить топ-5 зарплат
select distinct salary from employee order by salary desc limit 5;

4. Чтобы получить топ-5 зарплат по отношению к отделу
select distinct salary, dept_id from employee order by salary desc limit 5;


5. Чтобы получить 2-ю максимальную зарплату
select max(salary) from employee where salary not in(select max(salary) from employee);


5. Чтобы получить 2-й максимум заработной платы в отношении департамента
select max(salary), dept_id from employee where salary not in(select max(salary) from employee) group by dept_id;


Надеюсь, это даст лучшее представление о запросах, чтобы получить максимальное число и по отношению к другому полю.

Предположим, если у вас есть ранг в столбце и вы хотите найти ранг, то обязательно используйте MIN вместо MAX.

Овации....


Nirav Prabtani

предел????
- Вы уверены??

CHill60

Надеюсь, что нет ;-)

CHill60

И два года на это решение номер 13!

Nirav Prabtani

:)