SQL查询排名函数实例
作者:meaijojo 时间:2024-01-22 13:14:10
在实际开发中经常会遇到计算某个字段的排名的情况
如下表: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,查询,排名


猜你喜欢
vue动态注册组件实例代码详解
2023-07-02 17:01:11
meta标签之详解
2008-01-13 18:48:00
python statsmodel的使用
2021-04-22 13:38:13

python使用Faker进行随机数据生成
2023-12-21 14:24:33

在Django中限制已登录用户的访问的方法
2023-02-20 19:55:14
CentOs7 64位 mysql 5.6.40源码安装过程
2024-01-25 00:36:24
简单介绍Python中的decode()方法的使用
2021-01-05 23:47:31
使用Python三角函数公式计算三角形的夹角案例
2022-12-06 04:09:33
Ceph分布式存储集群Pool资源池简介及使用小结
2022-08-10 12:42:21
Python如何实现Paramiko的二次封装
2023-07-21 14:46:47

基于循环神经网络(RNN)实现影评情感分类
2021-11-27 16:42:10
在Oracle PL/SQL中游标声明中表名动态变化的方法
2009-02-28 10:39:00
MySQL 导入慢的解决方法
2024-01-22 12:08:42
python为什么要安装到c盘
2023-01-04 13:23:00
Java中正则表达式split()特殊符号使用详解
2022-06-27 15:59:32
python3+requests接口自动化session操作方法
2022-09-22 19:30:40
selenium python浏览器多窗口处理代码示例
2023-11-20 07:09:29
Python使用MoviePy轻松搞定视频编辑
2022-04-17 06:02:51
详解Python定时器Timer的使用及示例
2021-01-25 23:54:34

MySQL 数据库 source 命令详解及实例
2024-01-15 10:50:58
