返回
动态追踪人员信息表,掌握员工状态,洞悉部门结构变化!
闲谈
2023-12-18 13:29:03
了解企业人员状态对人力资源管理至关重要。以下SQL技巧将帮助企业基于动态人员信息表轻松查询每年每月每部门的入职、离职、在职人数。掌握这些信息,企业管理者能全面洞察部门人员结构的变化,优化人力资源配置,提升企业运行效率。
-- 创建动态人员信息表
CREATE TABLE Dynamic_Personnel_Info (
Employee_ID INT NOT NULL,
Employee_Name VARCHAR(255) NOT NULL,
Department VARCHAR(255) NOT NULL,
Status VARCHAR(255) NOT NULL, -- 在职、入职、离职
Date DATE NOT NULL
);
-- 插入示例数据
INSERT INTO Dynamic_Personnel_Info (Employee_ID, Employee_Name, Department, Status, Date) VALUES
(1, 'John Smith', 'Sales', 'In Service', '2023-01-01'),
(2, 'Mary Johnson', 'Marketing', 'Hired', '2023-02-15'),
(3, 'Michael Jones', 'IT', 'Resigned', '2023-03-31'),
(4, 'Sarah Miller', 'Finance', 'In Service', '2023-04-01'),
(5, 'Robert Brown', 'HR', 'Hired', '2023-05-10'),
(6, 'Linda Green', 'Sales', 'Resigned', '2023-06-30'),
(7, 'David Wilson', 'Marketing', 'In Service', '2023-07-01'),
(8, 'Jessica Anderson', 'IT', 'Hired', '2023-08-15'),
(9, 'Thomas Garcia', 'Finance', 'Resigned', '2023-09-30'),
(10, 'Nancy White', 'HR', 'In Service', '2023-10-01');
-- 查询每年每月每部门的入职、离职、在职人数
SELECT
strftime('%Y', Date) AS Year, -- 年份
strftime('%m', Date) AS Month, -- 月份
Department, -- 部门
COUNT(CASE WHEN Status = 'Hired' THEN 1 ELSE NULL END) AS Hired_Count, -- 入职人数
COUNT(CASE WHEN Status = 'Resigned' THEN 1 ELSE NULL END) AS Resigned_Count, -- 离职人数
COUNT(CASE WHEN Status = 'In Service' THEN 1 ELSE NULL END) AS In_Service_Count -- 在职人数
FROM Dynamic_Personnel_Info
GROUP BY Year, Month, Department
ORDER BY Year, Month, Department;
上述SQL查询将按年、月、部门对动态人员信息表进行分组,并分别统计入职、离职、在职人数。企业管理者可以灵活调整查询条件,例如仅查询特定年份或部门的数据,以获取所需的人员信息。
通过这种动态的人员信息表,企业可以轻松掌握员工状态,洞悉部门结构变化,从而优化人力资源管理,提升企业运行效率和竞争力。