今天主要介绍达梦数据库的常用集函数和分析函数及各个函数的使用场景,希望大家在sql的编写上能做到游刃有余。
本章的测试环境:
操作系统: 中标麒麟6 64位
数据库版本:达梦8.1
达梦数据库客户端:DM管理工具
集函数
为了方便用户的使用,增强查询能力,达梦SQL 语言提供了多种内部集函数。
集函数又称库函数,当根据某一限制条件从表中导出一组行集时,使用集函数可对该行集作统计操作。
集函数可分为 8 类:
1. COUNT(*);
2. 相异集函数 AVG|MAX|MIN|SUM|COUNT(DISTINCT);
3. 完全集函数 AVG|MAX|MIN| COUNT|SUM([ALL]);
4.方差集函数 VAR_POP、VAR_SAMP、VARIANCE、STDDEV_POP、STDDEV_SAMP、 STDDEV;
5. 协方差函数 COVAR_POP、COVAR_SAMP、CORR;
6. 首行函数 FIRST_VALUE
7. 求区间范围内最大值集函数 AREA_MAX;
8.FIRST/LAST 集函数 AVG|MAX|MIN| COUNT|SUM([ALL] ) KEEP (DENSE_RANK FIRST|LAST ORDER BY 子句);
9.字符串集函数 LISTAGG/LISTAGG2。
这里介绍最常用集函数AVG|MAX|MIN| COUNT|SUM和LISTAGG/LISTAGG2。
AVG|MAX|MIN|COUNT|SUM
MAX:求最大值集函数;
MIN:求最小值集函数;
AVG:求平均值集函数;
SUM:总和集函数;
COUNT:求总个数集函数。
以查询DMHR样例数据库中某公司每个部门的总人数,部门最高、最低、平均薪资水平,薪资总和为例,来展示各函数的查询用途。
查询sql样例如下:
select dept.department_name, count(*) person_num, max(emp.salary) max_sal, min(emp.salary) min_sal, avg(emp.salary) avg_sal, sum(emp.salary) sum_sal from employee emp, department dept where emp.department_id = dept.department_id(+) group by dept.department_name;
输出结果展示如下(数值列依次为本部门员工数,最大薪资数,最小薪资数,平均薪资数,薪资总和):