您的位置:首页 > 数据库 > Oracle

oracle sql语句复杂查询

2013-02-27 10:15 381 查看
在关系数据库中,数据分组是通过使用Group by字句,分组函数以及having子句共同实现的,其中

group by子句用于指定分组列(例如deptno),

分组函数用于显示统计结果(如count,avg,sun等),

having子句用于限制分组显示结果。

1.分组函数用于统计表的数据,与单行函数不同,分组函数作用于多行,并返回一个结果,所以有时也称作多行函数。一般情况下,分组函数要与group by子句结合使用,如果忽略group by子句,那么会汇总所有行,并产生一个结果。使用分组函数时。有以下一些注意事项:分组函数只能出现在选择列表,order
by子句,having子句中;当使用分组函数时,会忽略null行;如果在选择列表中既包含分组函数,也包含其他列和表达式,那么这些列或表达式必须出现在group by子句中;当使用分组函数时,可以在函数中指定all和distinct选项

max/min

select max(sal) 最高工资 min(sal) 最低工资 from dep;

avg/sum

select
avg(sal) 平均工资 sun(sal)
工资总和 from dep;

count

select count(*)
from dep;

=========================

select
column,group_function From table [where condition]

[Group by group_by_expression] [Having group_condition] [Order by expression]

=========================

order by子句改变分组排序结果

分组函数只能出现在选择列表,having子句和order by子句中

如果再select语句中同时包含有group by,having,order by子句时,order by子句放在最后

如果选择列表包含有列,表达式和分子函数,那么这些列和表达式必须出现在group by子句中(重要)

分组函数不能用在where中

==================================================================
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: