如何从MySQL表中获取雇员薪水记录的前3名薪水?

为此,请使用LIMIT和OFFSET。让我们首先创建一个表-

mysql> create table DemoTable867(EmployeeSalary int);

使用插入命令在表中插入一些记录-

mysql> insert into DemoTable867 values(63737);
mysql> insert into DemoTable867 values(899833);
mysql> insert into DemoTable867 values(23644);
mysql> insert into DemoTable867 values(89393);
mysql> insert into DemoTable867 values(534333);
mysql> insert into DemoTable867 values(889322);

使用select语句显示表中的所有记录-

mysql> select *from DemoTable867;

这将产生以下输出-

+----------------+
| EmployeeSalary |
+----------------+
| 63737          |
| 899833         |
| 23644          |
| 89393          |
| 534333         |
| 889322         |
+----------------+
6 rows in set (0.00 sec)

这是获得第一高薪的查询-

mysql> select distinct(EmployeeSalary) from DemoTable867 order by EmployeeSalary DESC LIMIT 1;

这将产生以下输出-

+----------------+
| EmployeeSalary |
+----------------+
| 899833         |
+----------------+
1 row in set (0.02 sec)

这是获得第二高薪水的查询-

mysql> select distinct(EmployeeSalary) from DemoTable867 order by EmployeeSalary DESC LIMIT 1 OFFSET 1;

这将产生以下输出-

+----------------+
| EmployeeSalary |
+----------------+
| 889322         |
+----------------+
1 row in set (0.00 sec)

以下是获得第三高薪水的查询-

mysql> select distinct(EmployeeSalary) from DemoTable867 order by EmployeeSalary DESC LIMIT 1 OFFSET 2;

这将产生以下输出-

+----------------+
| EmployeeSalary |
+----------------+
| 534333         |
+----------------+
1 row in set (0.00 sec)