Oracle SQL Lesson (5) - 使用组函数输出聚合数据
2013-11-02 19:26
507 查看
组函数
AVG
COUNT
MAX
MIN
SUM
VARIANCE:方差
STDDEV:标准差
SELECT AVG(salary), MAX(salary), MIN(salary), SUM(salary)
FROM employees WHERE job_id LIKE '%REP%';
SELECT MIN(hire_date), MAX(hire_date) FROM employees;
COUNT(expr) 返回expr为非空值的行数:
SELECT COUNT(commission_pct) FROM employees WHERE department_id = 80;
select count(nvl(comm,0)) from emp;
select sum(comm),avg(comm) from emp;去除空值
select sum(comm),avg(nvl(comm,0)) from emp;
SELECT COUNT(DISTINCT department_id) FROM employees;
SELECT department_id, AVG(salary) FROM employees GROUP BY department_id ;
SELECT AVG(salary) FROM employees GROUP BY department_id ;
Group by多列
SELECT department_id, job_id, SUM(salary) FROM employees WHERE department_id > 40
GROUP BY department_id, job_id
ORDER BY department_id;
group by不能使用别名,order by可以使用别名。
非法的组函数使用
SELECT department_id, COUNT(last_name) FROM employees;
SELECT department_id, job_id, COUNT(last_name) FROM employees GROUP BY department_id;
SELECT department_id, AVG(salary) FROM employees WHERE AVG(salary) > 8000 GROUP BY department_id;
正确使用having子句
SELECT column, group_function
FROM table
[WHERE condition]
[GROUP BY group_by_expression]
[HAVING group_condition]
[ORDER BY column];
SELECT department_id, MAX(salary) FROM employees GROUP BY department_id HAVING MAX(salary)>10000 ;
SELECT department_id, MAX(salary) FROM employees HAVING MAX(salary)>10000 GROUP BY department_id;
SELECT job_id, SUM(salary) PAYROLL FROM employees WHERE job_id NOT LIKE '%REP%'
GROUP BY job_id HAVING SUM(salary) > 13000 ORDER BY SUM(salary);
组函数嵌套
SELECT MAX(AVG(salary)) FROM employees GROUP BY department_id;
组函数只能嵌套一层,当行函数可以嵌套多层。必须跟group by。
AVG
COUNT
MAX
MIN
SUM
VARIANCE:方差
STDDEV:标准差
SELECT AVG(salary), MAX(salary), MIN(salary), SUM(salary)
FROM employees WHERE job_id LIKE '%REP%';
SELECT MIN(hire_date), MAX(hire_date) FROM employees;
COUNT(expr) 返回expr为非空值的行数:
SELECT COUNT(commission_pct) FROM employees WHERE department_id = 80;
select count(nvl(comm,0)) from emp;
select sum(comm),avg(comm) from emp;去除空值
select sum(comm),avg(nvl(comm,0)) from emp;
SELECT COUNT(DISTINCT department_id) FROM employees;
SELECT department_id, AVG(salary) FROM employees GROUP BY department_id ;
SELECT AVG(salary) FROM employees GROUP BY department_id ;
Group by多列
SELECT department_id, job_id, SUM(salary) FROM employees WHERE department_id > 40
GROUP BY department_id, job_id
ORDER BY department_id;
group by不能使用别名,order by可以使用别名。
非法的组函数使用
SELECT department_id, COUNT(last_name) FROM employees;
SELECT department_id, job_id, COUNT(last_name) FROM employees GROUP BY department_id;
SELECT department_id, AVG(salary) FROM employees WHERE AVG(salary) > 8000 GROUP BY department_id;
正确使用having子句
SELECT column, group_function
FROM table
[WHERE condition]
[GROUP BY group_by_expression]
[HAVING group_condition]
[ORDER BY column];
SELECT department_id, MAX(salary) FROM employees GROUP BY department_id HAVING MAX(salary)>10000 ;
SELECT department_id, MAX(salary) FROM employees HAVING MAX(salary)>10000 GROUP BY department_id;
SELECT job_id, SUM(salary) PAYROLL FROM employees WHERE job_id NOT LIKE '%REP%'
GROUP BY job_id HAVING SUM(salary) > 13000 ORDER BY SUM(salary);
组函数嵌套
SELECT MAX(AVG(salary)) FROM employees GROUP BY department_id;
组函数只能嵌套一层,当行函数可以嵌套多层。必须跟group by。
相关文章推荐
- Oracle 11g使用Pivot函数实现数据聚合行转列
- 使用Oracle 11g函数Pivot实现数据聚合行转列
- ORACLE 使用函数返回表数据
- printf函数使用—针对不同数据类型的输出结果详解
- Oracle DB 使用单行函数定制输出
- Oracle的pipelined函数提升数据输出性能
- Oracle 使用函数 function查询数据返回游标
- R_Studio(关联)使用apriori函数简单查看数据存在多少条关联规则,并按支持度降序排序输出
- Oracle的pipelined函数提升数据输出性能
- 使用Oracle的row_number() over函数过滤重复数据,取最新的记录
- .NET中使用ORACLE函数和过程并输出参数(1)
- 使用fwrite()函数和fprintf()函数输出数据到文件时的区别
- 使用ORACLE开窗函数over()进行重复数据的删除【自用】
- ORACLE SQL 3 使用单行函数定制输出
- 数据库操作_连接SQL Server数据库示例;连接ACCESS数据库;连接到 Oracle 数据库示例;SqlCommand 执行SQL命令示例;SqlDataReader 读取数据示例;使用DataAdapter填充数据到DataSet;使用DataTable存储数据库表;将数据库数据填充到 XML 文件;10 使用带输入参数的存储过程;11 使用带输入、输出参数的存储过程示;12 获得数据库中表的数目和名称;13 保存图片到SQL Server数据库示例;14 获得插入记录标识号;Exce
- .NET中使用ORACLE函数和过程并输出参数(3)使用游标返回列表
- oracle存储函数之在应用程序中使用存储函数输出指定用户的基本信息
- oracle 字符串数据拼接函数使用
- Oracle DB 使用单行函数定制输出
- Oracle的pipelined函数提升数据输出性能