一道sql面试题附答案

网络编程 2025-03-14 11:43www.168986.cn编程入门

在SQL面试中,我被要求查询一个名为“Wages”的表,该表记录了员工的ID、基本工资和工龄工资。任务是使用一句组合查询,生成一个包含工资统计的新表,其中包括员工ID、基本工资、工龄工资、合计工资以及名次。

这个表的内容如下:

```sql

Emp_id | 基本工资 | 工龄工资

-

1 | 1.00 | 1.00

2 | 1.00 | 2.00

3 | 1.00 | 3.00

4 | 1.00 | 4.00

...

```

下面是完成此任务的SQL查询语句:

```sql

SELECT

Emp_id,

基本工资,

工龄工资,

(基本工资 + 工龄工资) AS 合计,

ROW_NUMBER() OVER(ORDER BY (基本工资 + 工龄工资) DESC) AS 名次

FROM

Wages

ORDER BY 合计 DESC;

```

这个查询首先计算每个员工的合计工资,这是通过把基本工资和工龄工资相加得到的。然后,使用`ROW_NUMBER()`函数为结果集中的每一行分配一个名次。名次是根据合计工资降序排列的。结果是一个包含所有员工信息、他们的合计工资以及在所有员工中的名次的表。在这个查询中,没有使用任何复杂的联接或子查询,所有的信息都是从单一的“Wages”表中获取的。这使得查询既简洁又高效。这样,我们就可以轻松地获取员工的工资统计信息,并为管理层提供有关员工薪酬分布的洞察。

上一篇:php合并js请求的例子 下一篇:没有了

Copyright © 2016-2025 www.168986.cn 狼蚁网络 版权所有 Power by