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

mysql 分组之后如何统计记录条数, gourp by 之后的 count,第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”语句,点击运行即可。

sum(1)就是1这个数值,count(1)相当于第一列的名字,虽然统计行结果是一样的,从效率上还是推荐count。显然对于*和name知道主键列的直接指定会更好,不知道的话用星号也无妨。

SELECT category_Sn,isnull(count,0) FROM category left join (SELECT count(*) as count,category_Sn FROM [article] group by category_Sn) AS [article] on category.[category_Sn]=article.[category_Sn]

一、COUNT()函数

COUNT()函数进行计数。可利用COUNT()函数确定表中行的数目或者符合特定条件的行的数目。

COUNT()有两种使用方式:

1.使用COUNT(*)对表中行的数目进行计数,不管表列中包含的是空值(NULL)还是非空值。

2.使用COUNT(column)对特定列中具有值的行进行计数,忽略NULL值。

例如 SELECT COUNT(*) AS num_test FROM test

此语句对表test所有行进行计数,返回表的总行数,不管行中各列有什么值。

例如 SELECT COUNT(school) FROM test

此语句只对school列中有值的行进行计数,忽略null行。

二、MAX()函数

MAX()函数返回指定列中的最大值。MAX()要求指定列名。

例如SELECT MAX(age) FROM test

此语句返回表test中age的最大值。

注:MAX()函数忽略值为NULL的行。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7318733.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-04
下一篇 2023-04-04

发表评论

登录后才能评论

评论列表(0条)

保存