mysql - 如何获取结果列表中特定值的位置?
问题描述
在这里,我得到了按类型分组并按可用房间数量排序的酒店列表。
SELECT hotel_type, SUM(room_available) room_available FROM history WHERE hotel_name = 'anyHotel' GROUP BY hotel_type ORDER BY room_available DESC
我希望获得hotel_type='Classic'
该列表中出现的第一行的位置(行数)。
我怎样才能做到这一点?
解决方案
如果您正在运行 MySQL 8.0,则可以rank()
使用子查询来执行此操作:
select *
from (
select hotel_type, sum(room_available) room_available,
rank() over(order by sum(room_available) desc) rn
from history
where hotel_name = 'anyHotel'
group by hotel_type
) t
where hotel_type = 'Classic'
推荐阅读
- jquery - JQuery, How to diasable dropdownlists value when other dropdownlist value that selected
- reactjs - 笑话:动作创作者问题
- php - 苏鲁与 Symfony 4
- javascript - 如何使用javascript执行按钮点击操作
- html - 扩展html模板的背景图片没有加载到html页面中,如何解决这个问题?
- java - IntelliJ IDEA 可以自动用变量填充方法调用吗?
- oracle - 在不知道oracle中的列的情况下创建临时表
- vue.js - 没有值的自定义属性名称 - Vue.js
- java - Java 编码风格相关问题
- javascript - 无法将类从 angularjs 传递给 web api