count
作用:统计记录数。
(1)count(*)—包括所有列,返回表中的记录数,相当于统计表的行数,在统计结果的时候,包含NULL的记录,且不去重。
(2)count(列名)—只包括列名指定列,返回指定列的非空的记录数,在统计结果的时候,不包含为NULL的记录。
(3)count(distinct 列名)—只包括列名指定列,返回指定列的不同值的记录数,即会去重,且不包含列值为NULL的记录。
SELECT count(*) FROM student //查询总记录条数
SELECT count(name) FROM student //查询name列非空的记录条数
SELECT count(distinct name) FROM student //查询name列非空的去重后的记录条数
举例:
student表有5条初始记录,其中第五条name为null。
group by
作用:分组函数,一般与count联合使用。
SELECT name,count(*) FROM student GROUP BY name //统计相同name值的记录数,返回列表(包含NULL值)。
having
having语句通常与group by语句联合使用,用来过滤由group by语句返回的记录集。having语句的存在弥补了where关键字不能与聚合函数联合使用的不足。
SELECT name,count(*) FROM student GROUP BY name HAVING name='lisi';
order by
作用:根据指定条件进行排序
SELECT name,count(*) FROM student GROUP BY name order by name asc; //根据name顺序排列