一.统计当前title员工当前薪水平均工资
统计出当前(titles.to_date='9999-01-01')各个title类型对应的员工当前(salaries.to_date='9999-01-01')薪水对应的平均工资。结果给出title以及平均工资avg。
CREATE TABLE
`salaries`
(
`emp_no` int(11) NOT NULL,
`salary` int(11) NOT NULL,
`from_date` date NOT NULL,
`to_date` date NOT NULL,
PRIMARY KEY (`emp_no`,`from_date`));
CREATE TABLE IF NOT EXISTS
"titles"
(
`emp_no` int(11) NOT NULL,
`title` varchar(50) NOT NULL,
`from_date` date NOT NULL,
`to_date` date DEFAULT NULL);
select t.title,avg(s.salary) as avg
from titles as t,salaries as s
on t.emp_no=s.emp_no
where t.to_date='9999-01-01'
and s.to_date='9999-01-01'
group by t.title
二.获取所有部门当前员工当前薪水最高
获取所有部门中当前(dept_emp.to_date = '9999-01-01')员工当前(salaries.to_date='9999-01-01')薪水最高的相关信息,给出dept_no, emp_no以及其对应的salary
CREATE TABLE `dept_emp` (
`emp_no` int(11) NOT NULL,
`dept_no` char(4) NOT NULL,
`from_date` date NOT NULL,
`to_date` date NOT NULL,
PRIMARY KEY (`emp_no`,`dept_no`));
CREATE TABLE `salaries` (
`emp_no` int(11) NOT NULL,
`salary` int(11) NOT NULL,
`from_date` date NOT NULL,
`to_date` date NOT NULL,
PRIMARY KEY (`emp_no`,`from_date`));
select d.dept_no,d.emp_no,max(s.salary)
from dept_emp as d inner join salaries as s
on d.emp_no=s.emp_no
and d.to_date = '9999-01-01'
and s.to_date = '9999-01-01'
group by dept_no
考点:avg() group by题目描述统计出当前(titles.to_date='9999-01-01')各个title类型对应的员工当前(salaries.to_date='9999-01-01')薪水对应的平均工资。结果给出title以及平均工资avg。CREATE TABLE `salaries` (`emp_no` int(11) NOT NULL,`salary` int(11) NOT NULL,`from_date` date NOT NULL,`to_date` dat
一、场景简介
以下内容是对该问题和经验分享的场景进行简介,可以通过此部分查看此文章内容是否为你可以参考的内容。
使用
SQL
查询实现分区间/分段
统计
。该
sql
使用常存在于报表的制作,
统计
数据的计算,大屏数据展示等场景。通常我们会面对一类需求,将一组或一批或一张表的数据,根据某一字段按照分段、分区间(有时是自定义区间)的形式,进行汇总
统计
,计算相关数值、占比等。譬如以下场景:
统计
某班级(或其他类似团体)某次测试分数分布
计算某站点访问量随时间变化的曲线
某地区/某行
查找排除在职(to_date = '9999-01-01' )
员工
的最大、最小salary之后,其他的在职
员工
的
平均工资
avg_salary。
CREATE TABLE `salaries` ( `emp_no` int(11) NOT NULL,
`salary` int(11) NOT NULL,
`from_date` date NOT NULL,
`to_date` date NOT NULL,
PRIMARY KEY (`emp_no`,`from_date`));
INSER
3.子查询的操作,并且结合限定查询、数据排序、多表查询、
统计
查询一起完成各个复杂查询的操作
4.数据库的更新操作:增加、修改、删除数据
5.数据伪列的作用:ROWNUM,ROWID;
6.完成一套复杂查询的应用案例
统计
函数及
分组
统计
的操作
统计
函数
统计
函数主要有:
COUNT():用于
统计
数据数量 ...
有一个
薪水
表salaries简况如下:
请你
统计
出各个
title
类型对应的
员工
薪水
对应的
平均工资
avg。结果给出
title
以及
平均工资
avg,并且以avg升序排序,以上例子输出如下:
drop table if exists `salaries` ;
drop table if exists
title
s;
CREATE TABLE `salaries` (
`emp_no` int(11) NOT NULL,
查找各个
部门
当前
(to_date=’9999-01-01’)领导
当前
薪水
详情以及其对应
部门
编号dept_no
CREATE TABLE dept_manager (
dept_no char(4) NOT NULL,
emp_no int(11) NOT NULL,
from_date date NOT NULL,
to_date date NOT NULL,
PRIMARY KEY ...
--用PL/
SQL
语言编写一程序,实现按
部门
分段
--(6000以上、6000-3000,3000元以下)
统计
各个
--工资段的职工人数、以及各
部门
的工资总额(工资总额中不包括奖金)
--创建结果表--存储结果数据
create table msg
(deptno number,
count1 number,
count2 number,
count3 number,
saltotal numb
要
获取
每个
部门
中
当前
员工
薪水
最高
的相关信息,需要进行以下步骤:
1. 首先,需要查询每个
部门
中所有
员工
的
薪水
信息,可以使用
SQL
语句:SELECT department, employee, salary FROM employees;
2. 然后,需要按照
部门
进行
分组
,可以使用
SQL
语句:GROUP BY department;
3. 接着,需要在每个
部门
中找到
薪水
最高
的
员工
,可以使用
SQL
语句:SELECT department, MAX(salary) FROM employees GROUP BY department;
4. 最后,需要将每个
部门
中
薪水
最高
的
员工
信息与原始
员工
信息进行匹配,可以使用
SQL
语句:SELECT e.department, e.employee, e.salary FROM employees e INNER JOIN (SELECT department, MAX(salary) AS max_salary FROM employees GROUP BY department) m ON e.department = m.department AND e.salary = m.max_salary;
以上就是
获取
每个
部门
中
当前
员工
薪水
最高
的相关信息的步骤。
### 回答2:
获取
每个
部门
中
当前
员工
薪水
最高
的相关信息,首先需要了解相关数据的存储方式和表结构。通常,这样的信息是保存在企业的人事管理系统中的,其中可能包含
员工
信息、
部门
信息以及薪资信息。
有关
员工
信息的表结构可能包含
员工
姓名、工号、所属
部门
等基本信息,而有关
部门
的表结构也可能包含
部门
名称、所属
部门
等信息。另外,有关薪资信息的表结构可能包含
员工
工号、薪资金额等信息。
因此,要
获取
每个
部门
中
当前
员工
薪水
最高
的相关信息,可以通过联合多个表进行查询。首先,需要将
员工
信息表和
部门
信息表进行联合查询,
获取
每个
员工
所属的
部门
信息。然后,将薪资信息表和
员工
信息表进行联合查询,
获取
每个
员工
的薪资信息,并将这些信息与
部门
信息进行匹配,计算出每个
部门
的
最高
薪资金额。
最后,可以根据这些信息生成相关报表或图表,以便企业管理人员更好地了解
员工
的薪资情况及
部门
的薪资分布,有针对性地制定薪酬政策,促进企业的持续发展与壮大。
### 回答3:
获取
每个
部门
中
当前
员工
薪水
最高
的相关信息可以通过
SQL
语句完成。
首先,我们需要查询每个
部门
的
最高
薪水
,可以使用如下
SQL
语句:
SELECT department_id, MAX(salary) FROM employees GROUP BY department_id;
这条语句会在employees表中按
部门
ID
分组
,并使用MAX()函数
获取
每个
部门
的
最高
薪水
。
接下来,我们需要
获取
每个
部门
中
薪水
等于
最高
薪水
的
员工
信息。可以通过以下
SQL
语句完成:
SELECT e.* FROM employees e INNER JOIN
(SELECT department_id, MAX(salary) AS max_salary FROM employees GROUP BY department_id) max_salary
ON e.department_id = max_salary.department_id AND e.salary = max_salary.max_salary;
这个
SQL
语句首先使用第一条语句查询每个
部门
的
最高
薪水
,然后将结果与employees表连接起来,找出每个
部门
中
薪水
等于
最高
薪水
的
员工
信息。具体来说,内部子查询将结果命名为max_salary,并将每个
部门
的
最高
薪水
保存在max_salary.max_salary中。然后,通过INNER JOIN将employees表连接起来,找出每个
部门
中
薪水
等于max_salary.max_salary的
员工
。
最终,这条
SQL
语句会返回每个
部门
中
当前
员工
薪水
最高
的
员工
信息。