Oracle 学习:PL/SQL循序渐进全面学习教程
课程四 组函数
本课重点:
1、了解可用的组函数
2、说明每个组函数的使用方法
3、使用GROUP BY
4、通过HAVING来限制返回组
注意:以下实例中标点均为英文半角
一、概念:
组函数是指按每组返回结果的函数。
组函数可以出现在SELECT和HAVING 字段中。
GROUP BY把SELECT 的结果集分成几个小组。
HAVING 来限制返回组,对RESULT SET而言。
二、组函数:(#号的函数不做重点)
1、AVG
2、COUNT
3、MAX
4、MIN
5、STDDEV #
6、SUM
7、VARIANCE #
语法:
SELECT column, group_function
from table
[WHERE condition]
[GROUP BY group_by_expression]
[HAVING group_condition]
[ORDER BY column];
实例1:一个混合实例,说明所有问题:
SQL> SELECT AVG(salary), MAX(salary), MIN(salary),
2 SUM(salary)
3 from s_emp
4 WHERE UPPER(title) LIKE ’SALES%’;
AVG(SALARY) MAX(SALARY) MIN(SALARY) SUM(SALARY)
----------- ----------- ----------- -----------
1476 1525 1400 7380
说明:很多函数,我们在讲函数的已经向大家介绍过,但在此为何叫分组函数呢,主要是因为它们可以与GROUP
BY来形成对不同组的计算,相当于在很多值中进行挑选。
* MIN MAX函数可以接任何数据类型。
如果是MIN(last_name), MAX(last_name),返回的是什么呢?
千万记住,不是指LAST_NAME的长度,而是指在FIRST字母的前后顺序,第一个相同,然后比较第二个,如:xdopt
> cssingkdkdk > adopt > acccc
实例2:
SQL> SELECT COUNT(commission_pct)
2 from s_emp
3 WHERE dept_id = 31;
返回所有非空行个数
三、GROUP BY的应用:
先看一个简单实例:
SQL> SELECT credit_rating, COUNT(*) ”# Cust”
2 from s_customer
3 GROUP BY credit_rating;
注意这里别名的应用,复习一下从前的课程,加了引号后,就可以用特殊字符,但也仅有三个:#$_,什么对象的
名字都如此。当然空格也是可以的。
复杂实例:
SQL> SELECT title, SUM(salary) PAYROLL
2 from s_emp
3 WHERE title NOT LIKE ’VP%’
相关文档:
--行列转换 行转列
DROP TABLE t_change_lc;
CREATE TABLE t_change_lc (card_code VARCHAR2(3), q NUMBER, bal NUMBER);
INSERT INTO t_change_lc
SELECT '001' card_code, ROWNUM q, trunc(dbms_random.VALUE * 100) bal from dual CONNECT BY ROWNUM <= 4
UNION
SELECT '002' card_code, ROWNUM q, trunc(d ......
5.2 Clustered Indexes(聚集索引) (page 122)
聚集索引決定了一個表數據的物理排列順序,所以,一個表隻能有一個聚集索引。圖5.1表示了一個聚集索引的結構。
Figure 5.1
The structure of a clustered index
一個聚集索引的最底& ......
Vista出了名的兼容性问题多,很多人也苦于SQL SERVER不能安装在Vista下。现在我将自己的安装过程说下:
操作系统:Windows Vista Home Basic
处理单元:Inter P8600 2.40GHz
主存储器:2G
外存储器:250G
软件准备:(都可以在微软官方网站找到,均免费)
1.SQL SERVER 2005 EXPRESS(40.6M ......
这sql 语句写的真的很不错!
if object_id('[tb]') is not null drop table [tb]
go
create table [tb]([col1] bigint,[col2] varchar(6),[col3] varchar(6))
insert [tb]
select 130126200201000275,'王文霞','靳川川' union all
select 130126200201000275,'王文霞','靳澤' union all
select 13012620 ......
Oracle BAM全称为Oracle Busines Activity Monitoring,中文叫Oracle 业务活动监视
,BAM有两种功能
1.创建实时report
2.创建基于一定规则的alert
BAM最大的特点就是,它的功能都是实时的,任意的数据变化,他都能实时的反应到正在显示的report上去,也能立刻触发al ......