ASE产生排名除使用identity外另外的方式

表定义如下:
create table x (a int null,b int null)
insert into x select 3,5
insert into x select 2,6
insert into x select 1,1
insert into x select 5,2
insert into x select 7,3
要求按照b字段给他们排名,得到类似于以下结果
a           b           seq
----------- ----------- -----
          1           1     1
          5           2     2
          7           3     3
          3           5     4
          2           6     5

1使用identity
select *,seq=identity(2) into #a from x order by 2
select *from #a

2使用自连接分组
select a.a,a.b,count(b.b) as seq from x a,x b where a.b >=b.b group by a.a,a.b order by 3

但如果使用第2种方法,在b数据有重复的情况下,得到的数据就不一样了。
insert into x select 8,5

1> select *,seq=identity(2) into #a from x order by 2
2> select *from #a
3> go
(6 rows affected)
a           b           seq
----------- ----------- -----
           1           1     1
           5           2     2
           7           3     3
           3           5     4
           8           5     5
           2           6     6

(6 rows affected)
1> select a.a,a.b,count(b.b) as seq from x a,x b where a.b >=b.b group by a.a,a.b order by 3
2> go
a           b           seq
----------- ----------- -----------
           1           1           1
           5           2           2
           7           3           3
           3           5           5
           8           5           5
           2           6           6

(6 rows affected)
b=5用地1个方法得到了4,5俩个排名,而2个方法大家都是5,而不是4
所以在排名字段如果存在重复值,就要看业务需求是否能够接受排名一致的情况
还有就是,这只是一个实现方法,如果数据量较大,性能恐怕成问题!

转载地址:http://blog.chinaunix.net/u/163/showart.php?id=96422

\t\tASE产生排名除使用identity外另外的方式(转载)相关推荐

  1. MySql 内连接,外连接查询方式区别

    MySql 内连接,外连接查询方式 CREATE TABLE `question_test` (`q_id` int(11) DEFAULT NULL,`q_name` varchar(10) DEF ...

  2. 繁易平台直接对接监测点的数据(除MQTT方式外第二种方式)

    繁易平台直接对接监测点的数据(除MQTT方式外第二种方式) 一: 注册开发者秘钥信息 登录繁易平台,点击设置 点击开发者账号 点击添加开发者秘钥: 注意: ​ 添加开发者秘钥后,一定要保存client ...

  3. mysql外键设置方式

    mysql外键设置方式/在创建索引时,可指定在delete/update父表时,对子表进行的相应操作, 包括: restrict, cascade,set null 和 no action ,set ...

  4. MySQL外键创建方式

    MySQL外键创建方式 创建外键的两种方式: 方式一: 先创建两张单独的表,在对表约束进行修改,添加外键约束. USE school;ALTER TABLE `student1` RENAME `st ...

  5. 使用外链的方式让易班的轻应用更漂亮

    易班的轻应用和易班web端的话题博文是可以使用css代码来设计格式的,但是博文话题不可以用外链的css代码,而且页面的代码量有限制,所以不容易做出好的效果.然而轻应用是可以外链css代码的,只需要li ...

  6. Mysql添加外键的方式

    Mysql添加外键的几种方式 注意:添加外键是给从表添加(即子表) 父表是主表 方法一: 创建表之前: FOREIGN KEY (子表id) REFERENCES 关联表名(外主表id) 例如 cre ...

  7. 2018.8.18 servlet使用的会话跟踪除session外还有哪些方式

    解释HTTP HTTP是一种无连接的协议,如果一个客户端只是单纯地请求一个文件(HTML或GIF),服务器端可以响应给客户端,并不需要知道一连串的请求是否来自于相同的客户端,而且也不需要担心客户端是否 ...

  8. 站外营销经典方式之论坛发帖技巧

    讲到论坛发帖,做营销的朋友的大概都不陌生,这是一种很古老的发帖方式了,最早的帖子发布大多是在论坛上发的,因为以前还没有现在这么多的自媒体平台,最早的帖子发布大概就是三种形式,那就是博客.论坛.自己的网 ...

  9. Linux连接外网(方式一)

    1. 方法一:NAT方式上网 NAT 是 Network address translate的简称.NAT技术应用在internet网关和路由器上,比如192.168.0.123这个地址要访问inte ...

  10. seo外链推广对网站优化排名的重要性

    seo外链推广简称"网站外链推广"作为一个网站运营人员我们需要懂得如何打造高质量外链,老话说的好站内为王,外链为皇的一段话体现了网站外链对优化的莫大好处.下面站长论坛就来给各位分析 ...

最新文章

  1. 《Swift开发实战》——第2章,第2.4节函数和闭包
  2. 阿里云mysql数据库引擎_在阿里云RDS数据库服务器中将MySQL InnoDB引擎表转为压缩格式...
  3. webView loadData 中文乱码问题
  4. 数字图像处理:第九章 线性系统、卷积、傅立叶变换
  5. linux搭建springBoot环境,SpringBoot Linux服务化部署
  6. zoj 1078 palindrom numbers
  7. 漫步数理统计十七——条件分布与期望
  8. 如何编写wenpack插件
  9. 文件备份软件 FreeFileSync
  10. AE插件:TV Distortion Bundle mac(画面像素破损信号干扰失真插件)支持ae2021(2.6.0)
  11. 程序员面试HR常问问题(含答案)
  12. 频繁默认网关不可用_电脑经常掉线提示默认网关不可用原因分析和解决办法
  13. 直接跳转到app store指定应用页面或评论页面
  14. 【历史上的今天】12 月 27 日:第一台计算机背后的女性们;Box 创始人出生;开普勒诞生
  15. Shell学习笔记:#*、%*字符串掐头去尾方法
  16. TensorFlow Lite 开发手册(5)——TensorFlow Lite模型使用实例(分类模型)
  17. 新手小白如何短时间内熟练运营微信公众号
  18. 无人驾驶汽车是如何实现定位导航的
  19. 听诊器的基本构造及其特征
  20. 说说线程的生命周期和状态是如何运行

热门文章

  1. spark学习之SparkStreaming
  2. 计算机分区硬盘有写保护,如何去掉磁盘写保护实测方法
  3. 阿里巴巴实习生面试悲惨经历
  4. 音频特效生成与算法 2
  5. 如何批量打印PDF文件
  6. C# 打印PDF文件
  7. 数据分析 之八种方法
  8. 抖音视频水印如何去除掉?
  9. 论文作业(1):VOIP 中Speex/ILBCISAC/SILK比较
  10. Minimax算法——井字棋