重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章将为大家详细讲解有关SQL如何查询排名函数,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
创新互联云计算的互联网服务提供商,拥有超过13年的服务器租用、德阳服务器托管、云服务器、虚拟空间、网站系统开发经验,已先后获得国家工业和信息化部颁发的互联网数据中心业务许可证。专业提供云主机、虚拟空间、申请域名、VPS主机、云服务器、香港云服务器、免备案服务器等。
在实际开发中经常会遇到计算某个字段的排名的情况
如下表:totak_sales
现在又如此要求:按sales的逆序排序,要求添加一个sales_rank字段,显示排名顺序
方法:
代码如下: SELECT a1.Name, a1.Sales, COUNT(a2.sales) Sales_RankFROM Total_Sales a1, Total_Sales a2WHERE a1.Sales <= a2.Sales or (a1.Sales=a2.Sales and a1.Name = a2.Name)GROUP BY a1.Name, a1.SalesORDER BY a1.Sales DESC, a1.Name DESC;
结果:
或:
代码如下: SELECT a1.Name, a1.Sales, COUNT(a2.sales) Sales_RankFROM Total_Sales a1, Total_Sales a2WHERE a1.Sales < a2.Sales or (a1.Sales=a2.Sales and a1.Name = a2.Name)GROUP BY a1.Name, a1.SalesORDER BY a1.Sales DESC, a1.Name DESC;
结果:
由上面的方案,我们可以继续推测,如何选出某项来呢?
比如排名为5的那项内容:
代码如下: SELECT * from(SELECT a1.Name, a1.Sales, COUNT(a2.sales) Sales_RankFROM Total_Sales a1, Total_Sales a2WHERE a1.Sales < a2.Sales or (a1.Sales=a2.Sales and a1.Name = a2.Name)GROUP BY a1.Name, a1.SalesORDER BY a1.Sales DESC, a1.Name DESC) as tab WHERE tab.sales_rank=5;
关于SQL如何查询排名函数就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。