函数:
字符函数
转化成小写LOWER(<C>) 转化成大写UPPER(<C>) select lower('aAbBcC') from dual;
--------
日期函数
add_months(D,<I>)返回日期D加上i个月后的结果
select add_month(sysdate,3)from dual;
last_day(D)函数返回包含日期D的月份的最后一天
select last_day(sysdate)from dual;
.........
-------
分组函数
AVG()返回平均值
count(*)返回查询中行的数目
max()返回选择列表项目的最大值
min()返回选择列表项目的最小值
Select avg(sal),avg(distinct sal),max(sal),min(sal),
sum(sal),count(*),count(sal),count(distinct sal),
count(distinct comm),count(comm)
From emp where deptno=30;
--单列分组
--显示每个部门的平均工资和最高工资
Select deptno,avg(sal),max(sal) from emp
group by deptno;
--多列分组
--显示每个部门、每种岗位的平均工资和最高工资
Select deptno,job,avg(sal),max(sal) from emp
group by deptno,job;
having子句
--显示平均工资高于2000元的部门编号、平均工资和最高工资
select deptno,avg(sal),max(sal) from emp group by deptno having avg(sal)>2000;
--注意分组函数不能出现在where子句中
select deptno,avg(sal),max(sal) from emp where avg(sal)>2000 group by deptno;
-----
排序函数
row_number函数(顺序排序函数)
rank函数(排序存在相同值给出相同序号,同时空出预留序号)
dense_rank函数(排序存在相同值给出相同序号,但不空出预留序号)
------
窗口函数
over(partition by 分组字段名 order by 排序字段名 |[desc])
over(partition by deptno order by sal )按部门分组对工资进行排序