正文
shopname
,sales
,
date
,
avg
(sales)
over
(
partition
by
shopname)
from
t
最后结果如下所示:
shopname sales date avg_window_0
A 1 2018/4/1 4
B 3 2018/4/1 6
C 5 2018/4/1 5
A 7 2018/4/2 4
B 9 2018/4/2 6
C 2 2018/4/2 5
A 4 2018/4/3 4
B 6 2018/4/3 6
C 8 2018/4/3 5
04 order by子句
order by 就是按照某一列数值进行排序,主要与接下来的序列函数结合使用,当 order by 与聚合函数一起使用时,是顺序聚合的。什么叫顺序聚合呢?给大家举一个求和的聚合与 order by 结合使用的例子,就是
类似于累计和的效果
,具体代码如下:
select
shopname
,sales
,date
,sum(sales) over(partition by shopname order by date)
from
t
最后运行结果如下:
shopname sales date sum_window_0
A 1 2018/4/1 1
A 7 2018/4/2 8
A 4 2018/4/3 12
B 3 2018/4/1 3
B 9 2018/4/2 12
B 6 2018/4/3 18
C 5 2018/4/1 5
C 2 2018/4/2 7
C 8 2018/4/3 15
当 order by 与序列函数一起使用时就是用于排序。
05 序列函数
什么是序列函数,就是可以将数据整理成一个有序的序列,然后我们可以在这个序列里面挑选我们想要的序列对应的数据。
5.1 ntile
ntile 函数主要是用于将整表数据进行切片分组,默认是对表在不做任何操作之前进行切片分组的,比如现在整个表有9行数据,你要切片分成3组,那么就是第 1-3 行为一组,4-6 行为一组,7-9 行为一组。我们将店铺销量表切分成3组,代码如下: