博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
sql
阅读量:2065 次
发布时间:2019-04-29

本文共 1059 字,大约阅读时间需要 3 分钟。

行转列/列转行

  • 参考
    https://www.cnblogs.com/linJie1930906722/p/6036714.html

行转列

在这里插入图片描述

列转行

在这里插入图片描述

移动平均窗口函数

参考

  • https://zhuanlan.zhihu.com/p/150812199

定义

移动平均值的定义:若依次得到测定值(x1,x2,x3,…xn)时,按顺序取一定个数所做的全部算数平均值。例如(x1+x2+x3)/3,(x2+x3+x4)/3,(x3+x4+x5)/3,…就是移动平均值。其中,x可以是日或者月,以上的可以成为3日移动平均,或3月移动平均,常用于股票分析中。

语法

  • 语法结构:
avg(字段名) over(partition by 字段名 order by 字段名 asc/desc rows between A and B )-- A和B是计算的行数范围
  • 影响行数的范围(限定计算移动平均的范围):
rows between 2 preceding and current row  # 取当前行和前面两行rows between unbounded preceding and current row   # 包括本行和之前所有的行rows between current row and unbounded following  # 包括本行和之后所有的行rows between 3 preceding and current row   # 包括本行和前面三行rows between 3 preceding and 1 following   # 从前面三行和下面一行,总共五行当order by后面缺少窗口从句条件,窗口规范默认是rows between unbounded preceding and current row.当order by和窗口从句都缺失, 窗口规范默认是 rows between unbounded preceding and unbounded following
  • 以v_info举个例子吧
SELECT *,       AVG(grade) OVER(ORDER BY stu_no ROWS BETWEEN 2 preceding AND CURRENT ROW) AS '三移动平均'FROM v_info

对于第一行来说,没有前面两行,所以值就为当前行的值

对于第二行来说,前面只有一行,所以三移动平均就为第一行和第二行的平均值
影响行数范围的语句在标准的聚合函数中都适用。

你可能感兴趣的文章
Intellij IDEA使用(十四)—— 在IDEA中创建包(package)的问题
查看>>
Redis学习笔记(四)—— redis的常用命令和五大数据类型的简单使用
查看>>
使用 Sealos + Longhorn 部署 KubeSphere v3.0.0
查看>>
10小时,这回一次搞定 Kafka 源码!
查看>>
Prometheus hang 住问题定位解决
查看>>
Containerd 中的 Snapshot 到底是个什么鬼?
查看>>
高性能 Nginx HTTPS 调优 - 如何为 HTTPS 提速 30%
查看>>
在 Kubernetes 中部署高可用 Harbor 镜像仓库
查看>>
容器网络一直在颤抖,罪魁祸首竟然是 ipvs 定时器
查看>>
阿里宣布拆中台,首当其冲就是优化数据中台架构?
查看>>
Cilium 源码解析:Node 之间的健康探测(health probe)机制
查看>>
前几天是谁说 WireGuard 不香的?看我今天怎么怼你
查看>>
配置 containerd 镜像仓库完全攻略
查看>>
iTerm 2 使用触发器和 expect 实现 ssh 自动登录
查看>>
Kubernetes Pod 突然就无法挂载 Ceph RBD 存储卷了。。
查看>>
解决 Kubernetes 部署 Metrics Server 无法访问 Apiserver 问题
查看>>
AWS 容器三大新品:K8s 发行版,免费镜像库和 “Game Changer”AWS Proton
查看>>
多平台容器镜像构建就看这一篇
查看>>
macOS Big Sur 使用全新虚拟化框架创建超轻量虚拟机!
查看>>
16 岁高中生成功在 iPhone 7 上安装 Ubuntu 20.04 桌面!
查看>>