Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 基于标志的SQL查询_Mysql_Sql - Fatal编程技术网

Mysql 基于标志的SQL查询

Mysql 基于标志的SQL查询,mysql,sql,Mysql,Sql,我需要Mysql查询方面的帮助。如何求和(值)表中仅标记为0但不标记为所有零但仅标记为最后一个直零的值。比如说可能是最后2个零度,可能是最后5个零度。在示例图片中,最后3个零 样本数据 相当复杂,但我认为它是有效的,可能适合您 Select sum(`value`) from (Select `value`, @lastval := @lastval + 1 as row_index

我需要Mysql查询方面的帮助。如何求和(值)表中仅标记为0但不标记为所有零但仅标记为最后一个直零的值。比如说可能是最后2个零度,可能是最后5个零度。在示例图片中,最后3个零

样本数据


相当复杂,但我认为它是有效的,可能适合您

    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)

您可以在

中优化我的答案。请在帖子正文中提供一些示例数据和所需的文本格式输出。检查限制功能。按某列排序并使用限制和最后一行如果您知道记录数为0,则可以使用此查询
从表中选择总和(值),其中flag=0按id排序DESC limit 0,3
。。在这个查询中,我使用
限制0,3
假设您知道屏幕截图中标记为0的记录数是3。这太棒了!正是我需要的谢谢你是个很棒的程序员。我还需要更多的了解。这仍然很复杂,但我找不到更好的。若你们有更简单的查询,你们可以在SQLFiddle上编辑以优化它,并更新答案。我也喜欢这个问题