Computer >> Máy Tính >  >> Lập trình >> MySQL

Chọn số lượng giá trị (Có, Không) có cùng id nhưng các bản ghi tương ứng khác nhau trong MySQL?

Đối với điều này, bạn có thể sử dụng SUM () cùng với câu lệnh CASE. Trước tiên, hãy để chúng tôi tạo -

mysql> create table DemoTable1430
   -> (
   -> EmployeeId int,
   -> isMarried ENUM('YES','NO')
   -> );
Query OK, 0 rows affected (0.60 sec)

Chèn một số bản ghi vào bảng bằng cách sử dụng chèn -

mysql> insert into DemoTable1430 values(1001,'Yes');
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable1430 values(1001,'No');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable1430 values(1001,'Yes');
Query OK, 1 row affected (0.09 sec)
mysql> insert into DemoTable1430 values(1001,'Yes');
Query OK, 1 row affected (0.16 sec)

Hiển thị tất cả các bản ghi từ bảng bằng select -

mysql> select * from DemoTable1430;

Điều này sẽ tạo ra kết quả sau -

+------------+-----------+
| EmployeeId | isMarried |
+------------+-----------+
|       1001 | YES       |
|       1001 | NO        |
|       1001 | YES       |
|       1001 | YES       |
+------------+-----------+
4 rows in set (0.00 sec)

Đây là truy vấn để chọn số lượng giá trị (Có, Không) -

mysql> select EmployeeId,sum(isMarried='Yes') as NumberOfMarried,
   -> sum(isMarried='No') as NumberOfUnMarried
   -> from DemoTable1430
   -> group by EmployeeId;

Điều này sẽ tạo ra kết quả sau -

+------------+-----------------+-------------------+
| EmployeeId | NumberOfMarried | NumberOfUnMarried |
+------------+-----------------+-------------------+
|       1001 |               3 |                 1 |
+------------+-----------------+-------------------+
1 row in set (0.00 sec)