SQL——基本分析函数

分析函数基本语法:
函数名称(参数,…) over (
partition by 字段1,字段2,…
order by 字段1,字段2,…NULLS FIRST|NULLA LAST
windowing by 字段1,字段2,…)

函数名称 --类似统计函数(count(),sum()等),但在此有了更多的函数支持

OVER --为分析函数指明一个查询结果集,此语句在select子句中使用

PARTITION BY --将一个简单的结果集分为N组(或称为分区),而后按照不同的组对数据进行统计

ORDER BY --明确指明数据在每个组内的排列顺序,分析函数的结果与排列顺序有关

NULLS FIRST|NULLS LAST --表示返回数据行中包含null值是出现在排序序列前还是序列尾
NULLS FIRST --表示返回数据行中包含null值是出现在排序序列前
NULLS LAST --表示返回数据行中包含null值是出现在排序序列尾

WINDOWING BY --定义一个变化或固定的数据窗口方法,主要用于定义分析函数在操作行的集合

分窗子句有两种实现方式:

RANGE WINDOW --逻辑偏移,当前分区中当前行的前N行到当前行的记录集

ROWS WINDOW --物理偏移,一排序的结果顺序计算偏移当前行的起始记录集

RANGE或ROWS的偏移量可采用下列几种排序:

RANGE | ROWS 数字 PRECEDING

RANGE | ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW

RANGE | ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING

PRECEDING --主要是设置一个偏移量,这个偏移量可以是用户设置的数字,或者是其他标记

BETWEEN …AND… --设置一个偏移量的操作范围

UNBOUNDED PRECEDING --不限制偏移量大小

CURRENT ROW --表示当前行

FOLLOWING --如果不写此语句表示使用上N行与当前行指定数据比较,若果写此语句表示当前行与下N行数据比较

在分析函数中存在三个子句:PARTITION BY子句,ORDER BY子句,WINDOWING BY子句,这三个子句的组合顺序有如下几种:
1.函数名称(参数,…) over (partition by 子句 ,order by 子句,windowing by子句 字段,…)
2.函数名称(参数,…) over (partition by 子句 ,order by 子句)
3.函数名称(参数,…) over (partition by 子句)
4.函数名称(参数,…) over (order by 子句,windowing by子句 字段,…)
5.函数名称(参数,…) over (order by 子句)
6.函数名称(参数,…) over ()

带入查询语句则如下:select 列1,列2,函数名称(参数,…) over ( ) from dual

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值