• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    SQL查询排名函数实例

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

    如下表:totak_sales

    现在又如此要求:按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;

    结果:


    或:

    复制代码 代码如下:
    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;

    结果:

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

    比如排名为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;

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

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

    您可能感兴趣的文章:
    • SQL2005 四个排名函数(row_number、rank、dense_rank和ntile)的比较
    • 实例讲解sql server排名函数DENSE_RANK的用法
    • SqlServer 2005的排名函数使用小结
    • sql四大排名函数之ROW_NUMBER、RANK、DENSE_RANK、NTILE使用介绍
    上一篇:SQL语句之Union和Union All的用法
    下一篇:SQLSERVER简单创建DBLINK操作远程服务器数据库的方法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    SQL查询排名函数实例 SQL,查询,排名,函数,实例,