sql排名

问题描述

RT,需要分组排名例如年度,销量,月度2009501200930220097042009NULL6200990920101001201015022010904按年度排名20099091(名次)2009704220095013200930242009NULL6520101502120101001220109043

解决方案

解决方案二:
该回复于2012-01-12 13:17:57被版主删除
解决方案三:
sqlrank()排名
解决方案四:
我需要的是分组时的排名
解决方案五:
-->测试数据:[TB]ifobject_id('[TB]')isnotnulldroptable[TB]gocreatetable[TB]([年度]int,[销量]int,[月度]int)insert[TB]select2009,50,1unionallselect2009,30,2unionallselect2009,70,4unionallselect2009,null,6unionallselect2009,90,9unionallselect2010,100,1unionallselect2010,150,2unionallselect2010,90,4select*,flag=RANK()over(PARTITIONBY[年度]orderby[销量]desc)from[TB]orderby[年度],[销量]desc/*年度销量月度flag-----------------------------------------------------200990912009704220095013200930242009NULL6520101502120101001220109043(8行受影响)*/droptable[TB]

时间: 2024-10-27 07:58:46

sql排名的相关文章

SQL显示指定行数的值(用于排名)

SQL显示指定行数的值(用于排名) select top 23 * from employee where emp_id not in(select top 20 emp_id from employee) order by emp_id

SQL点滴20—T-SQL中的排名函数

原文:SQL点滴20-T-SQL中的排名函数   提到排名函数我们首先可能想到的是order by,这个是排序,不是排名,排名需要在前面加个名次序号的,order by是没有这个功能的.还可能会想到identity(1,1),它也给了一个序号,但是不能保证给出的序号是连续升序的.除非能够保证所有的Insert语句都能够正确成功地完成,并且没有删除操作,实际的使用中大多数的表都不能保证这样. 好在SQL Server中提供了一些排名函数来辅助实现这些功能.排名函数按照需要的顺序对数据进行排名,并提

Sql Server、Access数据排名的实现方法(例如:成绩排名)_数据库其它

但是,在SQL SERVER 2005 之前,SQL SERVER 2000 并没有提供这个直接的函数供我们使用,同样 ACCESS 也是如此. 下面我们分2种情况,来写出数据排名的实现过程.测试数据如下: 排名后的结果如下: Access 复制代码 代码如下: select name, score, (select iif(isnull(sum(1)), 1, sum(1) + 1) from score_rank where score > a.score) as rank from sco

只有两个字段用一个sql语句查询出某个学生的姓名、成绩以及在表中的排名_数据库其它

昨天去面试时遇到一个这样的问题: 有一张成绩表,只有两个字段,姓名和成绩.怎样用一个sql语句查询出某个学生的姓名,成绩以及在表中的排名? 一时间我也想不出具体实现,我就提了两种思路:一种是通过join关联一个查询出他排名的sql语句:一种是通过group by来实现. 回答得连自己都觉得有点心虚.请问大家如何实现呢? 假设:表名字为Course,两个字段分别为name和score 实现语句: SELECT 学生,成绩, (SELECT COUNT(*) FROM 表 WHERE a.成绩<=成

SQL Server2005杂谈(3):四个排名函数(row_number、rank、dense_rank和ntile)的比较

本文为原创,如需转载,请注明作者和出处,谢谢! 上一篇:SQL Server2005杂谈(2):公用表表达式(CTE)的递归调用     排名函数是SQL Server2005新加的功能.在SQL Server2005中有如下四个排名函数: 1. row_number 2. rank 3. dense_rank 4. ntile        下面分别介绍一下这四个排名函数的功能及用法.在介绍之前假设有一个t_table表,表结构与表中的数据如图1所示: 图1 其中field1字段的类型是int

实例讲解sql server排名函数DENSE_RANK的用法_MsSql

一.需求 之前sql server 的排名函数用得最多的应该是RoW_NUMBER()了,我通常用ROW_NUMBER() + CTE 来实现分页:今天逛园,看到另一个内置排名函数还不错,自己顺便想了一个需求,大家可以花1分钟先想想要怎么实现. 需求很简单:求成绩排名前五的学生信息. 例如: 由于成绩可以并列,所以前五名可能有多个.例如: 测试数据: declare @t table (ID int, StudentName nvarchar(15), Score int) insert int

GridView中实现并列排名的例子 SQL Server版

SQL Server数据库版本 <%@ Page Language="C#" AutoEventWireup="true"%> <script runat="server"> public int TrapezoidIndex = 1; int LastNumer = 0; protected void Page_Load( object sender, EventArgs e ) { string ConnectionS

实例讲解sql server排名函数DENSE_RANK的用法

一.需求 之前sql server 的排名函数用得最多的应该是RoW_NUMBER()了,我通常用ROW_NUMBER() + CTE 来实现分页:今天逛园,看到另一个内置排名函数还不错,自己顺便想了一个需求,大家可以花1分钟先想想要怎么实现. 需求很简单:求成绩排名前五的学生信息. 例如: 由于成绩可以并列,所以前五名可能有多个.例如: 测试数据: declare @t table (ID int, StudentName nvarchar(15), Score int) insert int

你真的会玩SQL吗?表表达式,排名函数

你真的会玩SQL吗?系列目录 你真的会玩SQL吗?之逻辑查询处理阶段 你真的会玩SQL吗?和平大使 内连接.外连接 你真的会玩SQL吗?三范式.数据完整性 你真的会玩SQL吗?查询指定节点及其所有父节点的方法 你真的会玩SQL吗?让人晕头转向的三值逻辑 你真的会玩SQL吗?EXISTS和IN之间的区别 你真的会玩SQL吗?无处不在的子查询 你真的会玩SQL吗?Case也疯狂 你真的会玩SQL吗?表表达式,排名函数 你真的会玩SQL吗?简单的 数据修改 你真的会玩SQL吗?你所不知道的 数据聚合