基于flag的SQL查询

时间:2017-11-22 06:39:55

标签: mysql sql

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

示例数据

enter image description here

1 个答案:

答案 0 :(得分:1)

相当复杂,但我认为它有效并可能为您解答

    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

中优化我的答案