聚集函数用法
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()用法