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

Đếm các hàng có ba hoặc nhiều hàng với một giá trị nhất định trong bảng MySQL

Đầu tiên chúng ta hãy tạo một bảng -

mysql> create table DemoTable
   -> (
   -> UserId int
   -> );
Query OK, 0 rows affected (0.48 sec)

Chèn một số bản ghi vào bảng bằng lệnh chèn -

mysql> insert into DemoTable values(10);
Query OK, 1 row affected (0.15 sec)

mysql> insert into DemoTable values(20);
Query OK, 1 row affected (0.12 sec)

mysql> insert into DemoTable values(30);
Query OK, 1 row affected (0.15 sec)

mysql> insert into DemoTable values(10);
Query OK, 1 row affected (0.14 sec)

mysql> insert into DemoTable values(10);
Query OK, 1 row affected (0.09 sec)

mysql> insert into DemoTable values(20);
Query OK, 1 row affected (0.17 sec)

mysql> insert into DemoTable values(30);
Query OK, 1 row affected (0.15 sec)

mysql> insert into DemoTable values(10);
Query OK, 1 row affected (0.19 sec)

mysql> insert into DemoTable values(20);
Query OK, 1 row affected (0.17 sec)

mysql> insert into DemoTable values(20);
Query OK, 1 row affected (0.11 sec)

mysql> insert into DemoTable values(40);
Query OK, 1 row affected (0.21 sec)

Hiển thị tất cả các bản ghi từ bảng bằng câu lệnh select -

mysql> select *from DemoTable;

Đầu ra

+----------+
| UserId   |
+----------+
|      10  |
|      20  |
|      30  |
|      10  |
|      10  |
|      20  |
|      30  |
|      10  |
|      20  |
|      20  |
|      40  |
+----------+
11 rows in set (0.00 sec)

Sau đây là truy vấn để đếm các hàng có 3 hoặc nhiều hàng với một giá trị nhất định trong bảng MySQL -

mysql> select count(*)
   -> from (select UserId, count(*) as total
   -> from DemoTable group by UserId
   -> )tbl
   -> where total >=3;

Điều này sẽ tạo ra kết quả sau, tức là giá trị 10 và 20 xuất hiện ba lần trở lên. Do đó, số đếm dành cho 2 giá trị -

Đầu ra

+----------+
| count(*) |
+----------+
|        2 |
+----------+
1 row in set (0.01 sec)