查询每个员工的年薪salary*12(加上奖金)
时间: 2023-11-14 13:15:09 浏览: 87
可以使用如下的SQL查询语句:
```
SELECT
e.first_name || ' ' || e.last_name AS employee_name,
(e.salary + COALESCE(e.commission_pct * e.salary, 0)) * 12 AS annual_salary
FROM
employees e;
```
这条查询语句将每个员工的姓名和年薪计算出来,并且使用了 COALESCE 函数来处理佣金比例为空的情况。其中,使用了字符串拼接的方式获取了员工的姓名。
相关问题
03.计算每个雇员的编号、姓名、基本年薪。年薪=(工资+奖金)*12,(使用 IFNULL 函数判断 NULL)
在数据库查询中,如果需要计算每个雇员的编号(Employee ID)、姓名(Name)以及他们的基本年薪(Basic Annual Salary),并且考虑了可能存在的奖金(Bonus),可以使用SQL查询结合IFNULL函数来处理NULL值。IFNULL函数的作用是在指定的字段值为NULL时返回另一个默认值。
以下是一个示例SQL查询:
```sql
SELECT
EmployeeID,
Name,
BasicAnnualSalary,
IFNULL((Salary + Bonus) * 12, 0) AS AnnualIncome
FROM
Employees;
```
在这个查询中:
- `EmployeeID` 和 `Name` 直接从Employees表中获取;
- `BasicAnnualSalary` 是基础年薪字段;
- `(Salary + Bonus)` 加上奖金得到总薪资,然后乘以12得到年薪;
- `IFNULL()` 函数确保当`Salary` 或 `Bonus` 为NULL时,年薪被设置为0,而不是产生NULL值。
在employees表里头,根据年薪(12个月的月薪加上奖金)分为大于10万的和小于10万的,并分别统计他们有多少个人和平均薪水
要在`employees`表中按照年薪(即12个月的月薪加上奖金)分组,可以使用SUM函数计算每年的总薪酬并判断是否超过10万。以下是SQL查询示例:
```sql
WITH annual_salaries AS (
SELECT
employee_id,
(monthly_salary * 12 + bonus) AS annual_salary
FROM
employees
)
SELECT
annual_salary >= 100000 AS is_above_100k,
COUNT(employee_id) AS count,
AVG(CASE WHEN annual_salary >= 100000 THEN annual_salary ELSE NULL END) AS avg_salary_above_100k,
AVG(CASE WHEN annual_salary < 100000 THEN annual_salary ELSE NULL END) AS avg_salary_below_100k
FROM
annual_salaries
GROUP BY
is_above_100k;
```
这个查询首先计算每个员工的年薪,然后根据年薪是否超过10万将员工分为两组:一组是年薪大于等于10万的,另一组是年薪小于10万的。接着分别统计各自的人数(count)以及平均薪资(avg_salary)。
阅读全文