计算MySQL表中具有特定值的三行或更多行的行

让我们首先创建一个表-

mysql> create table DemoTable
   -> (
   -> UserId int
   -> );

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

mysql> insert into DemoTable values(10);

mysql> insert into DemoTable values(20);

mysql> insert into DemoTable values(30);

mysql> insert into DemoTable values(10);

mysql> insert into DemoTable values(10);

mysql> insert into DemoTable values(20);

mysql> insert into DemoTable values(30);

mysql> insert into DemoTable values(10);

mysql> insert into DemoTable values(20);

mysql> insert into DemoTable values(20);

mysql> insert into DemoTable values(40);

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

mysql> select *from DemoTable;

输出结果

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

以下是对MySQL表中具有3个或更多行且具有特定值的行进行计数的查询-

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

这将产生以下输出,即值10和20出现3次或更多次。因此,计数为2个值-

输出结果

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