mysql - SQL 查询返回行数,直到满足特定条件

标签 mysql sql

我得到了按特定列排序的以下数据集:

ratio
-----
1
1
1
0.8333
1
1.6667
3.3333
1

我想计算比率等于 1 的行,但直到我到达比率 1 的行。 对于上述数据集,我的预期结果是 3(前三行)。

当然我可以在代码中做到这一点,但我只是想知道是否有 SQL 解决方案。

最佳答案

您说数据“按特定列排序”。如果是这样,您可以简单地执行以下操作:

select count(*)
from table t
where specificcolumn < (select min(t2.specificcolumn)
                        from table t2
                        where t2.ratio <> 1)

根据顺序,<可能需要 > .

注意:这假定特定列具有唯一值。如果值不唯一,则您需要多个列作为唯一键。

关于mysql - SQL 查询返回行数,直到满足特定条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31536262/

相关文章:

sql - 在 MySql 中对 UNION 结果求和的简单方法

mysql - SQL 计算某个元素出现的次数

sql - 使用自连接在 row_to_json() 中复制 JSON 元素

mysql - 字段列表中的列 'size' 不明确

php - 获取数据并检查一次查询中是否有 "Next Page"?

mysql - 如何将原始查询(Sequelize)的结果返回到 GraphQL

sql - 尝试连接表并按一个不同的最大值进行选择

mysql - 跟踪数据库用户执行的操作

mysql - 错误 #1241 - 在 Mysql 中操作数应包含 1 列

mysql - 使用两个字段作为标识符获取表中的最新记录