mysql - 基于标志的SQL查询

标签 mysql sql

我需要有关 Mysql 查询的帮助。我如何 SUM(Value) 只标记 = 0 但不是表中的所有零,但只有最后一个直零。说也许最后 2 个连续零,也许最后 5 个连续零。在示例图片中,最后 3 个零。

样本数据

enter image description here

最佳答案

相当复杂,但我认为它有效并且可能是你的答案

    Select sum(`value`) from
            (Select
                `value`,
                @lastval := @lastval + 1 as row_index
                  from yourtable
                  cross join (select @lastval := 0) A) B

            where B.row_index  > (select max(rowindex) from 
                                        (Select
                                            `flag`,
                                            @lastval := @lastval + 1 as rowindex
                                              from yourtable
                                              cross join (select @lastval := 0) C) D

                                            where D.flag = 1)

您可以在 SQLfiddle 中优化我的答案

关于mysql - 基于标志的SQL查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47428308/

相关文章:

如果数据不存在,Mysql查询对记录进行计数

php - 如何在 MySQL 中将表(以某些后缀结尾)从一个数据库移动到另一个数据库?

sql - 如何在 Oracle 中将各种 VARCHAR 作为数字进行比较

php - 在 YII 中动态添加语言

MySQL神秘错误

php - 如何将 mysql 行的结果放入单独的变量中

sql - 从sql server 2005存储过程打印源代码

mysql - 如何在每笔交易的值(value)旁边显示所有交易的总金额

c# - 如何在 winrt 中按字节限制文本框最大长度?

sql - 选择 "edit top ' N' 行时更改顺序”