SQL查询排名函数实例

 更新时间:2016年06月08日 11:04:42   作者:meaijojo  
本文主要讲解SQL查询排名函数实例,比较实用,希望能给大家做一个参考。

在实际开发中经常会遇到计算某个字段的排名的情况

如下表:totak_sales

//img.jbzj.com/file_images/article/201606/2016060811050012.jpg

现在又如此要求:按sales的逆序排序,要求添加一个sales_rank字段,显示排名顺序

方法:

复制代码 代码如下:
SELECT a1.Name, a1.Sales, COUNT(a2.sales) Sales_Rank
FROM Total_Sales a1, Total_Sales a2
WHERE a1.Sales <= a2.Sales or (a1.Sales=a2.Sales and a1.Name = a2.Name)
GROUP BY a1.Name, a1.Sales
ORDER BY a1.Sales DESC, a1.Name DESC;

结果:

//img.jbzj.com/file_images/article/201606/2016060811050013.jpg
或:

复制代码 代码如下:
SELECT a1.Name, a1.Sales, COUNT(a2.sales) Sales_Rank
FROM Total_Sales a1, Total_Sales a2
WHERE a1.Sales < a2.Sales or (a1.Sales=a2.Sales and a1.Name = a2.Name)
GROUP BY a1.Name, a1.Sales
ORDER BY a1.Sales DESC, a1.Name DESC;

结果:

//img.jbzj.com/file_images/article/201606/2016060811050014.jpg

由上面的方案,我们可以继续推测,如何选出某项来呢?

比如排名为5的那项内容:

复制代码 代码如下:
SELECT * from
(
SELECT a1.Name, a1.Sales, COUNT(a2.sales) Sales_Rank
FROM Total_Sales a1, Total_Sales a2
WHERE a1.Sales < a2.Sales or (a1.Sales=a2.Sales and a1.Name = a2.Name)
GROUP BY a1.Name, a1.Sales
ORDER BY a1.Sales DESC, a1.Name DESC
) as tab WHERE tab.sales_rank=5;

//img.jbzj.com/file_images/article/201606/2016060811050015.jpg

当然,此时如果将顺序修改为3的话,就不能很好的查找到内容了,这个还是一个弊端,需进行修改,待续

以上就是SQL查询排名函数实例的全部内容,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • MSSQL 数据库备份和还原的几种方法 图文教程

    MSSQL 数据库备份和还原的几种方法 图文教程

    MSSQL 数据库备份和还原的几种方法小结,配有图文,大家看了就知道了。
    2009-12-12
  • sqlserver 高性能分页实现分析

    sqlserver 高性能分页实现分析

    SQLServer中有一个Set Rowcount的的设置,它的意思是使命令的处理在响应指定的行数之后停止处理命令,利用这个特点,我们可以借用它来在一个千万行级数据表中实现高性能分页查询。
    2011-04-04
  • SQL Server2019安装的详细步骤实战记录(亲测可用)

    SQL Server2019安装的详细步骤实战记录(亲测可用)

    SQL Server 2019作为编程人员必须使用到的一款数据库管理软件,许多初学者在安装这款软件的时候都出现了各种各样的问题,下面这篇文章主要给大家介绍了关于SQL Server2019安装的详细步骤,需要的朋友可以参考下
    2022-06-06
  • SQL Server中发送HTML格式邮件的方法

    SQL Server中发送HTML格式邮件的方法

    这篇文章主要介绍了SQL Server中发送HTML格式邮件的方法,需要的朋友可以参考下
    2014-10-10
  • 在SQL触发器或存储过程中获取在程序登录的用户

    在SQL触发器或存储过程中获取在程序登录的用户

    每个用户可以登录系统,在程序中操作数据(添加,更新和删除)需要实现记录操作跟踪。是谁添加,更新和删除的,这些信息将会插入至AuditLog表中
    2012-01-01
  • SQL Server的彻底卸载方法步骤

    SQL Server的彻底卸载方法步骤

    可能大家已经有深刻体会,SQL Server的卸载十分繁琐,本文主要介绍了SQL Server的彻底卸载方法步骤,具有一定的参考价值,感兴趣的可以了解一下
    2024-05-05
  • 小议sqlserver数据库主键选取策略

    小议sqlserver数据库主键选取策略

    我们在建立数据库的时候,需要为每张表指定一个主键,所谓主键就是能够唯一标识表中某一行的属性或属性组,一个表只能有一个主键,但可以有多个候选索引
    2011-10-10
  • SQLServer 常用语句(按功能分)

    SQLServer 常用语句(按功能分)

    简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的 表或视图、以及搜索条件等。
    2009-08-08
  • SQL Server中row_number函数用法入门介绍

    SQL Server中row_number函数用法入门介绍

    SQL ROW_NUMBER函数是临时值序列的非持久生成,并且在执行查询时会动态计算该函数,下面这篇文章主要给大家介绍了关于SQL Server中row_number函数用法的相关资料,需要的朋友可以参考下
    2023-03-03
  • SqlServer存储过程实现及拼接sql的注意点

    SqlServer存储过程实现及拼接sql的注意点

    这篇文章主要介绍了SqlServer存储过程实现及拼接sql的注意点的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-07-07

最新评论