oracle 聚合分组排序,Oracle(零)--> 伪列和分组聚合(Oracle 开篇,比较初级啦~)...

1)select 语句中的运算使用列别名

如果显示数据库中存储的所有图书的列表时,需要将列标题显示为"Titil of books",可以在 select 子句中列名称的后面列出列别名。

sql:SELECT title AS "Title of books",category FROM books;

注意可选关键字 AS,以便区分列别名和列名称。

准则:如果列名称包含空格、特舒符号或者不希望全部以大写字母显示它,那么必须将它包含在 " " 中。如果只包含一个单词,则不需要 " " 。

2)使用 distinct 和 unique 删除重复的列。

2、伪列

1)Oracle 中伪列就像一个表列,但是它并没有存储在表中;

2)伪列可以从表中查询,但不能插入、更新和删除它的值;

3)常用的伪列有 ROWID 和 ROWNUM

ROWID:是表中行的存储地址,该地址可以唯一的标识数据库中的一行,可以使用 ROWID 伪列快速的定位表中的一行。

ROWNUM:是查询返回的结果集中行的序号,可以使用它来限制查询返回的行数。

3、常用的聚合函数(组函数)

也称为多行函数,他们能处理每一行并返回一个结果,常用组函数:SUM、AVG、COUNT、MIN、MAX。

聚合函数是对于所有记录进行聚合的,有时候我们需要先对记录分组再进行聚合。

对记录的分组是通过关键字 GROUP BY 实现的,如:group by f1,f2,f3,当且仅当两条记录在所有属性在 f1、f2、f3 上达成一致,它们才是同一组的。

例:每一类图书的平均利润

sql:SELECT category,TO_CHAR(AVG(retail - cost),‘999.99‘)as profit FROM books GROUP BY category.

GROUP BY 字句注意事项

1、如果在 select 子句中使用一个组函数,那么在 select 子句中列出的单独的列必须在

GROUP BY 子句中列出;

2、用来在 group by 子句中分组数据的列不必在 select 子句中列出,在 select 子句中包括它们只是为了在输出中指定组;

3、不能在 group by 子句中使用列别名;

4、从包括 group by 子句的 select 语句返回的结果将以在 group by 子句中列出的列的升序显示结果,要想以不同的顺序显示结果,可以使用 order by

子句。

HAVING 子句

1、用来限制一个查询返回的组;

2、如果需要使用组函数来限制组,那么必须使用 having 子句,因为 where 子句不能包含组函数。Having 子句指定了那些将显示在结果中。即: having 子句充当了组的 where 子句。

例:显示平均利润超过 15 美元的图书的种类

sql:SELECT category,TO_CHAR(AVG(retail - cost),‘999.99‘)as profit FROM books GROUP BY category Having AVG(retail-cost)>15.

ORDER BY子句

1、用于末尾,默认升序

次排序

1、ORDER BY 子句只指定一列时,称为"主排序",如果住排序中的两行或更多行完全相同,那么次排序提供了另一个进行排序的手段。

例:查询按州降序排列的客户,有多个居住在某个特定州的客户时,将按城市的升序对客户排序。

sql:SELECT lastname,firstname,city,state FROM customers ORDER BY state desc,city;

版权声明:本文为博主原创文章,未经博主允许不得转载。

Oracle(零)--> 伪列和分组聚合(Oracle 开篇,比较初级啦~)

标签:伪列   分组聚合

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉 本文系统来源:http://blog.csdn.net/qq_21394609/article/details/48025967

TAG标签: 伪列分组聚合

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值