sqlserver中分区函数 partition by的用法

2023-11-09

partition  by关键字是分析性函数的一部分,它和聚合函数不同的地方在于它能返回一个分组中的多条记录,而聚合函数一般只有一条反映统计值的记录,partition  by用于给结果集分组,如果没有指定那么它把整个结果集作为一个分组

create database StudentDB
go

use StudentDB
go

create table Student  --学生成绩表
(
id int,  --主键
Grade int, --班级
Score int --分数
)
go

insert Student 
    select 1,1,88
union all select 2,1,66
union all select 3,1,75
union all select 4,2,30
union all select 5,2,70
union all select 6,2,80
union all select 7,2,60
union all select 8,3,90
union all select 9,3,70
union all select 10,3,80

go

--所有学生信息
select * from Student

id          Grade       Score
----------- ----------- -----------
1           1           88
2           1           66
3           1           75
4           2           30
5           2           70
6           2           80
7           2           60
8           3           90
9           3           70
10          3           80

(10 行受影响)

--不分班按学生成绩排名
select *,ROW_NUMBER() over(order by Score desc) as Sequence from Student

id          Grade       Score       Sequence
----------- ----------- ----------- --------------------
8           3           90          1
1           1           88          2
6           2           80          3
10          3           80          4
3           1           75          5
9           3           70          6
5           2           70          7
2           1           66          8
7           2           60          9
4           2           30          10

(10 行受影响)

--分班后按学生成绩排名
select *,row_number() over(partition by Grade order by Score desc) as Sequence from Student

id          Grade       Score       Sequence
----------- ----------- ----------- --------------------
1           1           88          1
3           1           75          2
2           1           66          3
6           2           80          1
5           2           70          2
7           2           60          3
4           2           30          4
8           3           90          1
10          3           80          2
9           3           70          3

(10 行受影响)
--------------------- 
 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

sqlserver中分区函数 partition by的用法 的相关文章

  • [轻量级RTSP服务]Linux

    背景 随着国产操作系统的推进 传统行业对Linux平台的呼声和需求越来越大 之前几年 我们发布了Linux平台运营商级的RTSP转RTMP推送模块 RTMP推送模块和RTSP RTMP播放模块 前段时间 有开发者问我们 是不是可以在Linu
  • eclipse中springboot项目如何打包成jar文件

    eclipse中springboot项目如何打包成jar包 前提 第一步 清除项目中之前的打包内容 第二步 打jar包 第三步 测试 4 注意事项 前提 在项目的pom xml中配置相关的内容 其中finalName中内容表示jar war
  • 树莓派mqtt协议连接阿里云物联网平台,手机端获取数据并控制

    树莓派C语言mqtt协议连接阿里云物联网平台 一 阿里云后台配置树莓派设备 阿里云添加链接描述 注册 登录 打开控制台 选择产品与服务 物联网平台 进入后 选择设备管理 产品 点击创建产品 产品名称随便写 品类自定义 直连设备 其他默认 最
  • 【设计模式】建造者模式

    建造者模式 Builder Pattern 使用多个简单的对象一步一步构建成一个复杂的对象 这种类型的设计模式属于创建型模式 它提供了一种创建对象的最佳方式 一个 Builder 类会一步一步构造最终的对象 该 Builder 类是独立于其
  • 【概率论与数理统计】猴博士 笔记 p15-16 一、二维连续型求概率

    一维连续型求概率 题型如下 解题步骤如下 其实就是求积分 举例1的例子 例2 解 例3 解 注意 要把Y变为X计算 且要分类讨论y是否大于0 例4 解 去掉max和min的方法 去掉多余项的方法 假设要求AB两项同时发生的概率 当多余项 A
  • kafka使用_使用多线程增加kafka消费能力

    原创 小姐姐味道 微信公众号ID xjjdog 欢迎分享 转载请保留出处 前提 本例适合那些没有顺序要求的消息主题 kafka通过一系列优化 写入和读取速度能够达到数万条 秒 通过增加分区数量 能够通过部署多个消费者增加并行消费能力 但还是
  • order by产生的 Using temporary的优化

    今天遇到一个慢查询的sql sql如下 EXPLAIN SELECT tas f year tc pk id tas f sex tas f rank score tas f age tas f km five tas f km ten t
  • filter过滤器实现权限访问控制以及同一账号只能登录一台设备

    需求 如题目所意 未登录用户不能浏览访问项目内部的资源 对访问的请求和响应进行拦截 且一个用户只能在一台设备登录 权限访问控制功能可以通过过滤器或者拦截器去实现 在这里我用的是过滤器 过滤器可以过滤全部action请求 拦截器则更有针对性
  • unity通过键盘控制物体移动,大小的缩放

    拖动距离 private float distance 10 缩放量 float scale 0 2f 通过键盘 Q 或者 E 控制物体的缩放 通过键盘 w s a d 控制物体上下左右的移动 private void Update if
  • PWM实现线性调光

    1 PWM调光原理 PWM全称为脉宽调制技术 是通过高精度的计数器对方波的占空比进行编码 就是这个东西 其实很好理解 高电平的时候才会做功 低电平的时候肯定不亮啊 PWM就是调制高电平的占比 其实一般是低电平才有效 因为会外接一个12V的电
  • XFocus Windows Internet 服务器安全配置

    Windows 2003版本区别 1 Windows Server 2003 Standard Edition 标准版 针对中小型企业的核心产品 他也是支持双路处理器 4GB的内存 它除了具备 Windows Server 2003 Web
  • Revit SDK下载地址

    20190325更新 共享了如下sdk REVIT 2014 SDK exe REVIT2015SDK SubscriptionRelease msi REVIT 2016 SDK msi Revit 2017 1 SDK Update O
  • 树莓派OpenWrt SD扩展问题

    树莓派OpenWrt磁盘扩展 1 查看问题 前几天给树莓派4B刷了OpenWrt当做软路由来使用 发现树莓派的SD卡空间没有完全被使用 有一部分未分区 已用大概只有2GB df h查看 2 fdisk 命令查看磁盘 3 按p查看分区情况 发
  • ansible自动化运维工具上部署lnmp架构

    ansible自动化运维工具上部署lnmp架构 ansible安装 通过ansible连接到192 168 228 20配置nginx安装 本地也要安装nginx 步骤略 安装mysql 安装PHP ansible自动化运维工具上部署lnm

随机推荐

  • Spring默认使用的JSON工具--Jackson

    Spring默认使用的JSON工具 Jackson 一 Jackson介绍 我们常用的json转换工具包括fastJson Gson Jackson等 其中Gson是Google所维护 功能全 fastJson特点是快 但是爆出几次的重大b
  • 2021最新版IDEA右侧Maven模块以及View下的Maven Project不见了解决方法

    问题描述 重新启动了一下IDEA后发现许多jar包找不到 想使用Maven进行依赖刷新 却找不到项目右侧的Maven Project 网上搜索了很多解决方法 如清除IDEA缓存 重启电脑 删除隐藏文件等等 都没有效果 将正确的解决方法记录在
  • Redis集群模式使用Lua脚本的限制

    问题复现 ERR bad lua script for redis cluster all the keys that the script uses should be passed using the KEYS array and KE
  • chapter15:springboot与监控管理

    Spring Boot与监控管理视频 1 简介 通过引入spring boot starter actuator 可以使用SpringBoot为我们提供的准生产环境下的应用监控和管理功能 我们可以通过http jmx ssh协议来进行操作
  • js宏观任务、微观任务

    js运行机制分为同步异步 异步又分为宏观事件和微观事件 同步异步 js是一门单线程语言 因此js在同一个时间里只能做一件事 单线程意味着 如果在同个时间有多个任务的话 这些任务就需要排队 前一个执行完成才能执行下一个任务 同步任务 同步任务
  • Linux之内核级防火墙selinux模块

    一 什么是selinux SELinux Security Enhanced Linux 是美国国家安全局 NSA 对于强制访问控制的实现 是 Linux历史上最杰出的新安全子系统 NSA是在Linux社区的帮助下开发了一种访问控制体系 在
  • c语言小游戏——扫雷

    扫雷是一款经典的单人益智游戏 玩家需要在一个由许多方块组成的棋盘上找出所有的地雷 而不触发任何一颗地雷 int input 0 do menu printf 请选择 gt scanf d input 输入1进入游戏 输入0退出游戏 输入其他
  • 我们总结了每个技术开发团队都会遇到的 4 个难题

    我们整理了一篇 每个技术团队都会遇到的4个难题 帮助即将从校园进入公司实习的后端程序员 以实践的视角 看看一个后端技术团队会遇到的一些难题 虽然 技术上的难题远不止于此 但如果能从这篇文章中获得一些职业体感 也许对你的实习面试会有所帮助 从
  • Python图像处理-3.pil裁剪、旋转粘贴图片

    from PIL import Image import matplotlib pyplot as plt pil im1 Image open pic1 png plt figure girlfriend1 plt imshow pil
  • c++中创建与调用dll

    文章目录 1 dll的创建 2 dll的使用 3 仅使用dll 显式链接 4 一点小的建议 好处想必不用说了 所谓的黑盒复用 实现模块化的同时避免源代码暴露等 可以将某一通用功能做成模块 方便复用 同时软件更新时如果只更新了几个模块 可以更
  • zookeeper

    先说 Paxos 它是一个基于消息传递的一致性算法 Leslie Lamport 在 1990 年提出 近几年被广泛应用于分布式计算中 Google 的 Chubby Apache 的 Zookeeper 都是基于它的理论来实现的 pxos
  • Vuejs学习八:map()函数

    定义 map 函数定义在JS的array中 它返回一个新的数组 数组中的元素为原生数据用函数处理后的值 map 不会对空数组进行检测 map 不会改变原始数组 let temp that caseTagsList map item gt i
  • WebSocket菜鸟教程二

    websocket服务器 多窗口显示数据案例 注意事项 1 因为WebSocket存在一段时间后自动断开链接的问题 故采用每次读写操作都重新链接的方式 2 服务端总链接数量有限 因此每次重新链接前应先关闭之前的链接 而不能直接创建链接 3
  • mysql(二)Explain详解

    目录 Explain用法 Explain的列详解 id select type table partitions type possible keys key key len ref rows filtered explain命令是查看My
  • vue路由监听失效

    场景 vue 2 6 10 vue router 3 0 2 写法一 watch route to from debugger 亲测 监听失效 写法二 watch route handler function val oldVal cons
  • 前、中、后缀表达式及其转换

    文章目录 一 前缀表达式 1 1 定义 1 2 求值 二 中缀表达式 2 1 定义 2 2 求值 三 后缀表达式 3 1 定义 3 2 求值 四 转换 4 1 中缀表达式转后缀表达式 4 2 中缀表达式转前缀表达式 一 前缀表达式 1 1
  • 多种子区域生长的图像分割

    基于多种子区域生长的图像分割 区域生长原理 步骤 理论基础 matlab代码 区域生长原理 步骤 1 选取区域生长的起始点 种子 2 确定区域生长的规则 3 确定结束生长的条件 4 寻找符合生长条件的点 纳入生长区域 5 以新纳入的点作为种
  • 前端--HTML

    文章目录 HTML结构 快速生成代码框架 HTML常见标签 表格标签 编写简历信息 填写简历信息 Emmet 快捷键 HTML 特殊字符 一 HTML结构 1 认识HTML标签 HTML 代码是由 标签 构成的 形如 hello 标签名 b
  • idea:spring框架的@Resource注解爆红解决方法

    idea spring框架的 Resource注解爆红的解决方法 如图所示 只需在pom xml中加入以下依赖 maven的中央仓库该依赖
  • sqlserver中分区函数 partition by的用法

    partition by关键字是分析性函数的一部分 它和聚合函数不同的地方在于它能返回一个分组中的多条记录 而聚合函数一般只有一条反映统计值的记录 partition by用于给结果集分组 如果没有指定那么它把整个结果集作为一个分组 cre