在单个MySQL查询中获取两个表字段的计数?

为此,您可以将CASE语句与SUM()一起使用。在这里,我们将从具有员工性别值的列中查找“男性”和“女性”记录的数量。让我们首先创建一个表-

create table DemoTable
(
   EmployeeGender ENUM('Male','Female')
);

使用插入命令在表中插入一些记录-

insert into DemoTable values('Male');
insert into DemoTable values('Female');
insert into DemoTable values('Male');
insert into DemoTable values('Female');
insert into DemoTable values('Male');
insert into DemoTable values('Female');

使用select语句显示表中的所有记录-

select *from DemoTable;

这将产生以下输出-

+----------------+
| EmployeeGender |
+----------------+
| Male           |
| Female         |
| Male           |
| Female         |
| Male           |
| Female         |
+----------------+
6 rows in set (0.00 sec)

以下是在一个查询中获取两个表字段的计数的查询-

select
sum(case when EmployeeGender='Male' then 1 else 0 end) as Total_Number_Of_Male_Employee,
sum(case when EmployeeGender='Female' then 1 else 0 end) as Total_Number_Of_Female_Employee
from DemoTable;

这将产生以下输出-

+-------------------------------+---------------------------------+
| Total_Number_Of_Male_Employee | Total_Number_Of_Female_Employee |
+-------------------------------+---------------------------------+
|                             3 |                               3 |
+-------------------------------+---------------------------------+
1 row in set (0.00 sec
猜你喜欢