在SQL中,可以使用GROUP BY子句按照多个非唯一出现的值进行分组。以下是一个示例解决方法:
假设我们有一个名为"employees"的表,其中包含员工的姓名和部门信息。我们希望按照部门和岗位对员工进行分组,并计算每个组中员工的数量。
首先,创建一个示例表并插入一些数据:
CREATE TABLE employees (
id INT PRIMARY KEY,
name VARCHAR(50),
department VARCHAR(50),
position VARCHAR(50)
);
INSERT INTO employees (id, name, department, position)
VALUES
(1, 'John Doe', 'Sales', 'Manager'),
(2, 'Jane Smith', 'Sales', 'Salesperson'),
(3, 'Mike Johnson', 'Marketing', 'Manager'),
(4, 'Emily Brown', 'Marketing', 'Marketing Assistant'),
(5, 'David Lee', 'IT', 'Developer'),
(6, 'Sarah Wilson', 'IT', 'Developer');
然后,使用GROUP BY子句按照部门和岗位进行分组,并计算每个组中员工的数量:
SELECT department, position, COUNT(*) as employee_count
FROM employees
GROUP BY department, position;
运行以上代码,将得到以下结果:
| department | position | employee_count |
|------------|---------------------|----------------|
| Sales | Manager | 1 |
| Sales | Salesperson | 1 |
| Marketing | Manager | 1 |
| Marketing | Marketing Assistant | 1 |
| IT | Developer | 2 |
以上结果按照部门和岗位进行了分组,并计算了每个组中员工的数量。
请注意,GROUP BY子句的顺序与SELECT子句中的列顺序相同。
上一篇:按照多个非标准条件对列表进行排序
下一篇:按照多个分组变量进行分组的插值