mysql - MySql 选择计数直到找到某个值
问题描述
id number my_id
1 1 789
1 2 645
1 3 222
1 4 544
1 5 155
使用简单的计数结果将等于 5
SELECT COUNT(id) AS count FROM table WHERE id = 1
我如何计算直到找到某个值?
例如:count until my_id is '222' with count result = 3
谢谢!
解决方案
这取决于顺序,“直到 my_id 为 222”是什么意思?
您可以进行这样的查询(或相反),但这将使用该my_id
字段来确定应该计算谁:
SELECT count(id) as count
FROM YourTable
WHERE id = 1 AND my_id <= 222
编辑:您的问题缺少一些重要信息,但也许您的意思是:
SELECT COUNT(t.id) as count
FROM YourTable t
WHERE t.id = 1
AND t.number <= (SELECT number FROM YourTable s
WHERE s.id = 1 and S.my_id = 222)
此查询依赖于只有 1 条记录将匹配内部查询的事实。
推荐阅读
- java - 如何使用 AnnotationConfigApplicationContext 测试/Junit 类
- ubuntu-20.04 - Snapcraft 在清洁零件后不会产生任何按扣
- curl - curl - 带有反斜杠的参数不通过
- joomla - 错误无效的应用程序 ID 指定的“fb:app:id”属性不是有效的应用程序 ID
- arrays - Google 表格 - 对列中的每一行执行 VLOOKUP 并返回总和
- python - Mapbox Choropleth 地图未显示
- reactjs - ReactJS 前端与 Azure AD B2C 错误 UnsupportedAuthorityValidation
- python - 尝试使用请求打包 python 3.7 脚本时出现 SSL 模块错误
- python - pandas:groupby 2列,保持所有行具有唯一值
- sql - 过滤掉雪花中的空字符串