排名 sql

简介:

结构为
user scores
1      80
2     7
3     99
4     58
..

比如我想计算user
=4在此表中的排名应该如何做?

SELECT COUNT* ) FROM user_test WHERE scores >= ( SELECT scores FROM user_test 
WHERE user =4 ) 


--参数说明:
--
sc 表名
--
name 人名
--
mark 分数
--
ord 名次


1、并列,有空档,名次是不连续的(有两个第二名,接下来的就是第四名)。
update sc set ord=(select count(*)+1 from sc B where B.mark>sc.mark)
说明:其实就是求出分数比他多的人数,再加上1。


2、并列,无空档,名次总是连续的
update sc set ord=(select count(*from (select distinct mark from sc) as distmark where distmark.mark >=sc.mark)
说明:
select distinct mark from sc 是求出不重复的分数,然后看你的分数排在哪个位置。

 

--1. 名次生成方式1,Score重复时合并名次
SELECT *,Place=(SELECT COUNT(DISTINCT Score) FROM tb WHERE Score>=a.Score)
FROM tb a
ORDER BY Place
/*--结果
Name       Score        Place 
---------------- ----------------- ----------- 
aa         99.00        1
ee         78.00        2
gg         78.00        2
dd         77.00        3
ff         76.00        4
bb         56.00        5
cc         56.00        5
ff         50.00        6
--
*/

--2. 名次生成方式2,Score重复时保留名次空缺
SELECT *,Place=(SELECT COUNT(Score) FROM tb WHERE Score>a.Score)+1
FROM tb a
ORDER BY Place
/*--结果
Name       Score        Place 
--------------- ----------------- ----------- 
aa         99.00        1
ee         78.00        2
gg         78.00        2
dd         77.00        4
ff         76.00        5
bb         56.00        6
cc         56.00        6
ff         50.00        8
--
*/

 

    本文转自曾祥展博客园博客,原文链接:http://www.cnblogs.com/zengxiangzhan/archive/2009/09/23/1572290.html,如需转载请自行联系原作者


相关文章
|
存储 传感器 物联网
新技术驱动未来:区块链、物联网、虚拟现实的蓬勃发展与创新应用
随着科技的迅猛发展,新兴技术如区块链、物联网、虚拟现实等正成为当今社会关注的焦点。本文将探讨这些新技术的发展趋势和广泛应用场景,展示它们在不同领域中的潜力与创新价值。
|
负载均衡 5G 网络性能优化
深入解析LTE(长期演进技术)的基本架构及其关键组件
深入解析LTE(长期演进技术)的基本架构及其关键组件
1226 2
|
5月前
|
关系型数据库 MySQL 大数据
大数据新视界--大数据大厂之MySQL 数据库课程设计:MySQL 数据库 SQL 语句调优的进阶策略与实际案例(2-2)
本文延续前篇,深入探讨 MySQL 数据库 SQL 语句调优进阶策略。包括优化索引使用,介绍多种索引类型及避免索引失效等;调整数据库参数,如缓冲池、连接数和日志参数;还有分区表、垂直拆分等其他优化方法。通过实际案例分析展示调优效果。回顾与数据库课程设计相关文章,强调全面认识 MySQL 数据库重要性。为读者提供综合调优指导,确保数据库高效运行。
|
网络协议 Go
golang判断ip地址是ipv4还是ipv6
golang判断ip地址是ipv4还是ipv6
|
11月前
|
搜索推荐 BI API
ZoomEye-python工具使用详解(一)
ZoomEye-python工具使用详解(一)
271 0
|
10月前
|
存储 安全 数据安全/隐私保护
完整性
网络信息在存储或传输过程中保持不被偶然或蓄意地添加、删除、修改、伪造、乱序、重放等破坏和丢失的特性 完整性是一种面向信息的安全性,它要求保持信息的原样,即信息的正确生成、正确存储和正确传输 保障完整性的方法: (1)良好的协议:通过各种安全协议可以有效地检测出被复制的信息、被删除的字段、失效的字段和被修改的字段 (2)密码校验和方法: 它是抗窜改和传输失败的重要手段 (3)数字签名:保障信息的真实性,保证信息的不可否认性 (4)公证:请求网络管理或中介机构证明信息的真实性
|
负载均衡 算法 Nacos
SpringCloud之LoadBalancer自定义负载均衡算法,基于nacos权重
ReactorLoadBalancer接口,实现自定义负载算法需要实现该接口,并实现choose逻辑,选取对应的节点。
1246 0
|
XML 数据采集 中间件
中间件API请求处理
【6月更文挑战第14天】
174 5
|
开发工具