mysql 分组之后如何统计记录条数, gourp by 之后的 count

2024年11月15日 19:34
有5个网友回答
网友(1):

需要准备的工具:电脑,sql数据库。

1、首先新建一个test表,有id,name,second三个字段,其中name字段有重复数据。

2、输入“select name,max(second) from test group by name”语句,点击运行。

3、可以看到已经查询出按name分组后取出的second最大的一条记录。

4、以输入“select name,max(second) from test group by name order by max(second) desc”语句,按分组后second最大值进行降序。

5、如果想查询mysql分组后最小的一条记录,输入“select name,min(second) from test group by name”语句,点击运行即可。

网友(2):

可直接用嵌套查询。

方法如下:

如数据:

id          name

1            a

1            b

2            c

2            d

3            e

3            f

3            g

3            h

select count(t.counts) from
(select id,count(*) counts from 表名 group by id) t

这样得到的结果就是3。

网友(3):

第二个写法出来的是相同id值的计数情况。一般来说,一条select语句的执行顺序如下:from子句→where→group by(having)→select→order by→limit,因为聚集函数是在select中的,所以是在执行完group by之后再执行count()函数,所以第二条写法是得不到总的记录数的。如果你要获得总的记录数就用第一种写法。

网友(4):

select count(*) from
(SELECT count(*) FROM 表名 WHERE 条件 GROUP BY id ) a ;

网友(5):

SELECT count(*) FROM 表名 WHERE 条件 // 这样查出来的是总记录条

SELECT count(*) FROM 表名 WHERE 条件 GROUP BY id //这样统计的会是每组的记录条数.

获得第二个sql语句的总记录条数则是,如下:

select count(*) from(SELECT count(*) FROM 表名 WHERE 条件 GROUP BY id ) a ;

注意:

子查询方式,MySQL中子结果集必须使用别名,而Oracle中不需要特意加别名。

扩展资料:

MySQL使用统计函数的语法形式如下:

SELECT function(field) FROM table_name WHERE condition

在上述语句中利用统计函数function来统计关于字段field的值。

1、统计数据记录条数

统计函数COUNT()用来实现统计数据记录条数,可以用来确定表中记录的条数或符合条件的记录条数。可以通过以下两种方式来实现该统计函数:

(1) COUNT(*) :该种方式可以实现对表中记录进行统计,不管字段中包含的是NULL值还是非NULL值。

(2) COUNT(field):该种方式可以实现对指定字段的记录进行统计,在具体统计时将忽略NULL值。

2、统计计算平均值

统计函数AVG()首先用来实现统计计算特定字段值之和,然后求得该字段的平均值。使用方式如下:

AVG(field):该方式可以实现对指定字段的平均值进行计算,在具体统计时将忽略NULL值。