聚合函数与分组【转】

需要注意count(*)和count(列名)的用法区别

使用count(列名)当某列出现null值的时候,count(*)仍然会计算,但是count(列名)不会

在使用count(distinct 列名),过滤掉重复数据
GROUP BY 语句

GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组。
SQL GROUP BY 语法

SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name

需要注意的是 在分组中(即出现了group by 子句)必须满足下列2个条件:


1.查询的列必须是分组(聚合)函数,例如max(s_score) avg(s_score)

2.或者查询的列必须是分组列

ORACLE的一个数字函数round来解决数字格式化问题如:select round ((s_score),2)from student group by s_name;

需要注意having和where的用法区别:

1. having只能用在group by之后,对分组后的结果进行筛选(即使用having的前提条件是分组)

2. where肯定在group by 之前,即也在having之前

3. where后的条件表达式里不允许使用聚合函数,而having可以

当一个查询语句同时出现了where,group by,having,order by的时候,执行顺序和编写顺序是:

1。首先执行select xx from xx,返回一个结果记录集合

2.使用where对结果记录集合里的数据进行筛选

3.使用group by 对筛选后的结果分组

4.使用having对分组后的结果再次筛选

5.对最后剩下来的数据进行排序
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值