mysql 分组之后如何统计记录条数, gourp by 之后的 count
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql 分组之后如何统计记录条数, gourp by 之后的 count相关的知识,希望对你有一定的参考价值。
SELECT count(*) FROM 表名 WHERE 条件 // 这样查出来的是总记录条
SELECT count(*) FROM 表名 WHERE 条件 GROUP BY id //这样统计的会是每组的记录条数.
如何获得 第二个sql语句的总记录条数
第二个查询是用作多表联查的, GROUP BY 后面那个ID 是其中一个表的主键
需要准备的工具:电脑,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”语句,点击运行即可。
参考技术A可直接用嵌套查询。
方法如下:
如数据:
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。
参考技术B 第二个写法出来的是相同id值的计数情况。一般来说,一条select语句的执行顺序如下:from子句→where→group by(having)→select→order by→limit,因为聚集函数是在select中的,所以是在执行完group by之后再执行count()函数,所以第二条写法是得不到总的记录数的。如果你要获得总的记录数就用第一种写法。 参考技术C select count(*) from(SELECT count(*) FROM 表名 WHERE 条件 GROUP BY id ) a ;本回答被提问者和网友采纳 参考技术D
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值。
MySQL 分组后,统计记录条数
分组后,统计记录条数:
SELECT num,count(*) AS counts from test_a GROUP BY num;
查询结果如下:
对num去重后的数量的统计:
SELECT count(t.counts) FROM ( SELECT num,count(*) AS counts from test_a GROUP BY num ) AS t;
SELECT count(DISTINCT num) AS count FROM test_a;
它俩结果一样,都是5;只是一个是子查询(嵌套),一个是内置函数 distinct();
数据库结构
以上是关于mysql 分组之后如何统计记录条数, gourp by 之后的 count的主要内容,如果未能解决你的问题,请参考以下文章