暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

group by 、count(*)、count(1)、count(name)聚集函数的用法

原创 潘宁宁 2020-03-18
4767

聚集函数用法

1、group by用法:

SQL> select * from stu;

    ID NAME                    CLASSID
复制

     1 A                             1
     2 B                             1
     2 C                             2
     3 E                             1
     4 D                             2
     5 G                             2
     5 A                             2
     6 C                             1
复制

8 rows selected.

SQL> select classid from stu group by classid;

CLASSID

     1
     2
复制

2 rows selected.
注:看上图可知group by查询出来的是对classid分了两组1和2。言而之意,group by是分组的作用,还有一个排序的功能。

2、count(*)用法:

SQL> select count(*) from stu;

COUNT(*)

     8
复制

1 row selected.

注:count(*)是计数一张表有多少行数据。

3、count(1)用法:

SQL> select * from stu;

    ID NAME                    CLASSID
复制

     1 A                             1
     2 B                             1
     2 C                             2
     3 E                             1
     4 D                             2
     5 G                             2
     5 A                             2
     6 C                             1
     7                               2
     7                                
复制

10 rows selected.

SQL> select count(1),classid from stu group by classid;

COUNT(1) CLASSID


     4          1
     5          2
     1           
复制

3 rows selected.

2 rows selected.
注:count(1)对classid字段计数每一个分组里有多少行数据

4、count(name)用法

a)现在name字段里有一行是空值
SQL> select * from stu;

    ID NAME                    CLASSID
复制

     1 A                             1
     2 B                             1
     2 C                             2
     3 E                             1
     4 D                             2
     5 G                             2
     5 A                             2
     6 C                             1
     7                               2
复制

9 rows selected.
SQL> select count(name) from stu;

COUNT(NAME)

      8
复制

1 row selected.
b)现在name字段里没有空值
SQL> select * from stu;

    ID NAME                    CLASSID
复制

     1 A                             1
     2 B                             1
     2 C                             2
     3 E                             1
     4 D                             2
     5 G                             2
     5 A                             2
     6 C                             1
复制

8 rows selected.
SQL> select count(name) from stu;

COUNT(NAME)

      8
复制

1 row selected.
注:这两个查询比较出count(1)和count(name)这两个的区别,name如果有空值,count(name)计数不计空值。count(name)不去重,计数所有的行,不包括空值。

5、count(distinct name)用法

sum用法
sum(1)
max()用法
min()用法
avg()用法

最后修改时间:2020-03-18 15:59:55
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论