(2)DML增强功能-4大排名函数与top ties

1.row_number()  over( partition by column order by column)

(1)测试数据

  

(2)根据程序使用row_number() over()排序

  

(3)说明:即使相同分数,也会按排序(这里用到的是默认聚集索引(id字段)排序)

(4)至于row_number()  over(partition by column order by column) 加上分区的这种,这里就不演示了,(1-3)中演示的是以所有数据为整体排序,如果用上partition by 字段名分区的,即以分区字段为一个整体排序,分区字段有10个不同的值就有10个从1开始的排序。

2.rank() over( partition by column order by column)

  与row_number 一样,其区别在于如果是相同分数,则会给出相同名次。如图1-4名,结果排名回事1,2,2,4,这里也同样不演示分区的情况了。

结果图如下:

3.dense_rank() over( partition by column order by column)

  与rank() over()一样,其区别是,如果是1-4名中有相同名次的也会给同名次,但是其下一个名次会顺序承接上一个值+1.也就是会出现1,2,2,3这样的结果

4.ntile(number) over( partition by column order by column)

  其实根据 over里面的分组与排序,把所有数据分组,先看一下结果图

  

在图中,一共14行数据,我把其按照n1列排序后,分为3组。平均分下来只有3*4=12啊,那么多余的2行怎么分的呢?

如果行数平均划分后还有余行,那么就把行分在最前面的几组上。比如我们的结果有7行,要分为3组。那么第一组3行,第二组2行,第三组2行。如果我们结果有14行,平均分为3组。那么第一组5行,第二组5行,第三组4行。依此类推。

所以,我们的14行,平分每个组4行,还多2行会1行加在1组上,1行加在2组上。

5、top colomn 与 top  with ties

这个top就不说了,大家都知道什么意思。

top ties的作用是,把所有数据集中order by 字段与top中的最后一行order by 字段数据值相同的数据也一起筛选出来。

top ties的效果给大家演示一下,如图:

(1)如果直接top(2)是这样的

(2)加上ties的效果



原文地址:https://www.cnblogs.com/gered/p/9094018.html

时间: 2024-10-03 01:17:03

(2)DML增强功能-4大排名函数与top ties的相关文章

DML增强功能-CTE(1)

1.CTE的通用形式 WITH temp_name as ( CTE查询结果集 ) with/as :关键字 temp_name:为CTE临时使用名称,可以看初学者做是一个临时表 ():查询结果集主体 2.CTE的递归查询 其实CTE最强大的地方就是在于其递归查询 举例1:使用CTE递归获取某年的1-12月份 --获取2018年的1-12月份(可以用来做外连接和分组) ;with date_test as ( select cast('20180101 00:00:00' as datetime

(5)DML增强功能-try catch及事务控制

一.事务控制与Try Catch结合 BEGIN TRY BEGIN TRAN; DECLARE @aaa NVARCHAR(MAX); SET @aaa = 9 / 0; COMMIT TRAN; END TRY BEGIN CATCH --[错误]-- DECLARE @ErrorMessage NVARCHAR(MAX) , @ErrorSeverity INT , @ErrorState INT , @exception NVARCHAR(255); SELECT @ErrorMessa

输入6个人的成绩放入到一个一维数组中,然后打印出平均分,最后按成绩 从大到小打印。三个功能(输入是一个函数,求平均分是一个函数,排序是一个 函数)都用函数实现,最后在main方法中调用。

/*5.输入6个人的成绩放入到一个一维数组中,然后打印出平均分,最后按成绩从大到小打印.三个功能(输入是一个函数,求平均分是一个函数,排序是一个函数)都用函数实现,最后在main方法中调用.*/ #include <stdio.h> int inputScore(){ int score; scanf("%d",&score); return score;} double avg(int scores[],int length){ int i,score = 0;

SQL2005四个排名函数(row_number、rank、dense_rank和ntile)的比较

排名函数是SQL Server2005新加的功能.在SQL Server2005中有如下四个排名函数: 1.row_number 2.rank 3.dense_rank 4.ntile 下面分别介绍一下这四个排名函数的功能及用法.在介绍之前假设有一个t_table表,表结构与表中的数据如图1所示: 图1 其中field1字段的类型是int,field2字段的类型是varchar 一.row_number row_number函数的用途是非常广泛,这个函数的功能是为查询出来的每一行记录生成一个序号

javascript功能插件大集合,写前端的亲们记得收藏

导读:GitHub 上有一个 Awesome – XXX 系列的资源整理.awesome-javascript 是 sorrycc 发起维护的 JS 资源列表,内容包括:包管理器.加载器.测试框架.运行器.QA.MVC框架和库.模板引擎.数据可视化.时间轴.编辑器等等. 伯乐在线已在 GitHub 上发起「JavaScript 资源大全中文版」的整理.欢迎扩散.欢迎加入. https://github.com/jobbole/awesome-javascript-cn js包下载地址:http:

世界公认的健康水果大排名!第一名居然是……

世界公认的健康水果大排名!第一名居然是-- 2016-03-11 水果,相信很多人都喜欢吃,但是你知道世界上公认的十大水果排名吗?下面就跟大家科普一下,健康水果排名,越吃越健康! 1.梨 梨子自古被推尊为"百果之宗". 味甘微酸.性寒.无毒.可以止咳.润肺凉心.消炎降火.解痰毒酒毒之功效.梨子含有充足水分.及一些葡萄糖.蔗糖和维生素A.B.C.D.E并能提供纤维素和钙.磷.铁.碘.钾等微量元素. 梨治鸡眼: 用适量梨榨成汁喝,也可用果渣同汁一起敷在患处.大概7~10天便可减轻症状. 梨

四个排名函数(row_number、rank、dense_rank和ntile)的比较

排名函数是SQL Server2005新加的功能.在SQL Server2005中有如下四个排名函数: 1.row_number 2.rank 3.dense_rank 4.ntile 下面分别介绍一下这四个排名函数的功能及用法.在介绍之前假设有一个t_table表,表结构与表中的数据如图1所示: 图1 其中field1字段的类型是int,field2字段的类型是varchar 一.row_number row_number函数的用途是非常广泛,这个函数的功能是为查询出来的每一行记录生成一个序号

排名函数

排名函数是Sql Server2005新增的功能,下面简单介绍一下他们各自的用法和区别.我们新建一张Order表并添加一些初始数据方便我们查看效果. CREATE TABLE [dbo].[Order]( [ID] [int] IDENTITY(1,1) NOT NULL, [UserId] [int] NOT NULL, [TotalPrice] [int] NOT NULL, [SubTime] [datetime] NOT NULL, CONSTRAINT [PK_Order] PRIMA

Python 命令行之旅:深入 click 之增强功能

作者:HelloGitHub-Prodesire HelloGitHub 的<讲解开源项目>系列,项目地址:https://github.com/HelloGitHub-Team/Article 一.前言 在前面三篇文章中,我们介绍了 click 中的参数.选项和命令,本文将介绍 click 锦上添花的功能,以帮助我们更加轻松地打造一个更加强大的命令行程序. 本系列文章默认使用 Python 3 作为解释器进行讲解. 若你仍在使用 Python 2,请注意两者之间语法和库的使用差异哦~ 二.增