oracle 常用函数

  1. 多行函数
  2. 分析函数




多行函数:

MIN   求最小值

MAX   求最大的

SUM  求和

AVG  求平均值

COUNT 计数

VARIANCE

STDDEV


分析函数:


KEEP( DENSE_RANK FIRST  |  DENSE_RANK LAST    ORDER BY col )

获取一组数据中,排名第一或者排名最后的记录。必须有order by 子句用来排序。

后面也可以接over()分析函数部分。



实例: 

           Min(col2)keep(dense_rank first order by col1)  保留按col1排序第一的col2的最小值。

           Min(col2)keep(dense_rank first order by col1)over (partition by col3)  按col3分组保留按col1排序各组第一的col2的最小值。




问题描述:
每天收集各个批发市场各种水果的价格。市场有多个,但规模(MARKET_LEVEL)不同。如果同一种水果,有多个市场的价格,那么以规模最大的市场为准。最后查出的结果是每种水果一条记录。

表结构与样例数据:
create table fruit_quotation(
fruit_name varchar2(10),  --水果种类名称
quotation_date date not null,       --行情日期
price number(4,2) not null,          -- 价格
market varchar2(20) not null,       --市场名称
market_level number not null,       --市场规模
constraint PK_FRUIT_QUOT PRIMARY KEY (fruit_name,market)
);

insert into fruit_quotation values('红富士苹果',   to_date('2009/11/9', 'yyyy/mm/dd'), 3.5, '福州和平市场', 1);
insert into fruit_quotation values('红富士苹果',   to_date('2009/11/9', 'yyyy/mm/dd'), 4.0, '西营里市场', 2);
insert into fruit_quotation values('红富士苹果',   to_date('2009/11/9', 'yyyy/mm/dd'), 3.6, '塔头市场', 3);
insert into fruit_quotation values('江西脐橙',  to_date('2009/11/9', 'yyyy/mm/dd'), 2.0, '福州和平市场', 1);
insert into fruit_quotation values('江西脐橙',  to_date('2009/11/9', 'yyyy/mm/dd'), 2.5, '西营里市场', 2);
insert into fruit_quotation values('天宝香蕉',  to_date('2009/11/9', 'yyyy/mm/dd'), 3.2, '福州和平市场', 1);
insert into fruit_quotation values('天宝香蕉',  to_date('2009/11/9', 'yyyy/mm/dd'), 3.5, '西营里市场', 2);
insert into fruit_quotation values('普通梨',    to_date('2009/11/9', 'yyyy/mm/dd'), 2.9, '福州和平市场', 1);

commit;


 


SQL> select * from fruit_quotation order by fruit_name;
 
FRUIT_NAME QUOTATION_DATE  PRICE MARKET               MARKET_LEVEL
---------- -------------- ------ -------------------- ------------
红富士苹果 2009/11/9        4.00 西营里市场                      2
红富士苹果 2009/11/9        3.60 塔头市场                        3
红富士苹果 2009/11/9        3.50 福州和平市场                    1
江西脐橙   2009/11/9        2.00 福州和平市场                    1
江西脐橙   2009/11/9        2.50 西营里市场                      2
普通梨     2009/11/9        2.90 福州和平市场                    1
天宝香蕉   2009/11/9        3.50 西营里市场                      2
天宝香蕉   2009/11/9        3.20 福州和平市场                    1


 


期望的查询结果:


FRUIT_NAME QUOTATION_DATE      PRICE MARKET               MARKET_LEVEL
---------- -------------- ---------- -------------------- ------------
红富士苹果 2009/11/9             3.6 塔头市场                        3
江西脐橙   2009/11/9             2.5 西营里市场                      2
普通梨     2009/11/9             2.9 福州和平市场                    1
天宝香蕉   2009/11/9             3.5 西营里市场                      2



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值