16

MYSQLの給与表からn番目に高い給与を見つけるのを手伝ってくれる人

4

26 に答える 26

44

これを試してください。 n は、返したいn番目のアイテムになります

 SELECT DISTINCT(Salary) FROM table ORDER BY Salary DESC LIMIT n,1
于 2012-08-02T07:46:08.977 に答える
34

テーブルから n 番目の給与を見つけたい場合 (ここで n は、1 番目または 2 番目または 15 番目に高い給与のようなものである必要があります)

これは、n 番目の給与を検索するためのクエリです。

SELECT DISTINCT Salary FROM tblemployee ORDER BY Salary DESC LIMIT 1 OFFSET (n-1)

8 番目に高い給与を検索する場合、クエリは次のようになります。

SELECT DISTINCT Salary FROM tblemployee ORDER BY Salary DESC LIMIT 1 OFFSET 7

注: OFFSET は 0 番目の位置から始まるため、ここでは N-1 ルールを使用します。

于 2015-02-04T10:15:01.460 に答える
18

n 番目に高い給与を取得するには、まず を使用してデータを並べ替え、次にwithORDER BYを使用して n 番目に高いレコードを選択する必要があります。LIMITOFFSET

SELECT DISTINCT(salary) AS salary
FROM tbl_salary
ORDER BY salary DESC
LIMIT 1 OFFSET (n - 1);
于 2012-08-02T06:19:13.597 に答える
12
SELECT * FROM Employee Emp1 
WHERE (N-1) = ( 
    SELECT COUNT(DISTINCT(Emp2.Salary)) 
    FROM  Employee Emp2 
    WHERE Emp2.Salary > Emp1.Salary)

外側のクエリによって処理された各レコードに対して、内側のクエリが実行され、現在の給与よりも給与が少ないレコードを持つレコードの数が返されます。2 番目に高い給与を探している場合、内部クエリが N-1 を返すとすぐにクエリが停止します。

于 2013-03-20T09:54:37.910 に答える
8

最高の給料を見つける.

select MAX(Salary) from Employee;

2番目に高い給与を見つける.

クエリ-1

SELECT MAX(Salary) FROM Employee
WHERE Salary NOT IN (SELECT MAX(Salary) FROM Employee);

クエリ-2

select MAX(Salary) from Employee
WHERE Salary <> (select MAX(Salary) from Employee )

n 番目に高い給与を見つける

クエリ-1

SELECT * /*This is the outer query part */
FROM Employee Emp1
WHERE (N-1) = ( /* Subquery starts here */
SELECT COUNT(DISTINCT(Emp2.Salary))
FROM Employee Emp2
WHERE Emp2.Salary > Emp1.Salary)

クエリ-2

SELECT *
FROM Employee Emp1
WHERE (1) = (
SELECT COUNT(DISTINCT(Emp2.Salary))
FROM Employee Emp2
WHERE Emp2.Salary > Emp1.Salary)

SQL Server で TOP キーワードを使用して n 番目に高い給与

SELECT TOP 1 Salary
FROM (
      SELECT DISTINCT TOP N Salary
      FROM Employee
      ORDER BY Salary DESC
      ) AS Emp
ORDER BY Salary

MySQL で n 番目に高い給与を見つける

SELECT Salary FROM Employee 
ORDER BY Salary DESC LIMIT n-1,1

SQL Server で n 番目に高い給与を見つける

SELECT Salary FROM Employee 
ORDER BY Salary DESC OFFSET N-1 ROW(S) 
FETCH FIRST ROW ONLY

rownum を使用して Oracle で n 番目に高い給与を見つける

select * from (
  select Emp.*, 
row_number() over (order by Salary DESC) rownumb 
from Employee Emp
)
where rownumb = n;  /*n is nth highest salary*/

RANK を使用して Oracle で n 番目に高い給与を見つける

select * FROM (
select EmployeeID, Salary
,rank() over (order by Salary DESC) ranking
from Employee
)
WHERE ranking = N;
于 2015-11-27T11:27:50.873 に答える
3

これを試して:

select MIN(sal) from salary where sal in 
 (select sal from salary order by sal desc limit 9)
于 2012-08-02T06:25:50.270 に答える
2

5番目に高い給与を見つけるためにこれを試してください-

SELECT DISTINCT(column name) FROM table ORDER BY (column name) desc LIMIT 4,1

n番目の給与-

SELECT DISTINCT(column name) FROM table ORDER BY (column name) desc LIMIT n-1,1

私はphpmyadminパネルでそれを試しました..

于 2014-05-20T12:08:30.810 に答える
2

n番目に高いものを指定したい場合は、ランク法を使用できます。

3 番目に高い値を取得するには、次を使用します。

SELECT * FROM
(SELECT @rank := @rank + 1 AS rank, salary
FROM   tbl,(SELECT @rank := 0) r 
order by salary desc ) m
WHERE rank=3
于 2012-08-02T06:23:12.730 に答える
1
SELECT * FROM employe e1 WHERE n-1 = ( SELECT COUNT(DISTINCT(e2.salary)) FROM employe e2 WHERE e2.salary > e1.salary) 

    Where n = highest number of salary like 1,2,3
于 2014-09-06T09:33:21.897 に答える
0

4 番目に高い給与の場合:

min(salary) from (hibernatepractice.employee e order by salary desc limit 4) から e1 として min(salary) を選択します。

n 番目に高い給与の場合:

min(salary) from (hibernatepractice.employee e order by salary desc limit n) から e1 として min(salary) を選択します。

于 2016-03-03T12:37:59.220 に答える
0
SELECT DISTINCT(column_name)
  FROM table_name 
  ORDER BY column_name DESC limit N-1,1;

ここで、N は n 番目に高い給与を表します。

3 番目に高い給与 :

SELECT DISTINCT(column_name)
 FROM table_name 
 ORDER BY column_name DESC limit 2,1;
于 2013-02-11T22:37:12.120 に答える
0

これは機能しますn 番目の最大数を見つけるには

SELECT 
    TOP 1 * from (SELECT TOP  nth_largest_no * FROM Products Order by price desc) ORDER BY price asc;

5 番目に大きい数の場合

SELECT 
  TOP 1 *  from (SELECT TOP  5 * FROM Products Order by price desc) ORDER BY price asc;
于 2016-03-08T10:06:11.893 に答える
-1

sql給与が 3 番目に高い従業員のすべてのレコードを取得する場合は、次のクエリを使用できます。

テーブル名: 給料

select * from salary where salary = 
(select distinct salary from salary order by salary desc limit 2,1)
于 2014-06-17T11:52:49.570 に答える