• <tfoot id='pPgDg'></tfoot>
    <i id='pPgDg'><tr id='pPgDg'><dt id='pPgDg'><q id='pPgDg'><span id='pPgDg'><b id='pPgDg'><form id='pPgDg'><ins id='pPgDg'></ins><ul id='pPgDg'></ul><sub id='pPgDg'></sub></form><legend id='pPgDg'></legend><bdo id='pPgDg'><pre id='pPgDg'><center id='pPgDg'></center></pre></bdo></b><th id='pPgDg'></th></span></q></dt></tr></i><div id='pPgDg'><tfoot id='pPgDg'></tfoot><dl id='pPgDg'><fieldset id='pPgDg'></fieldset></dl></div>

    <small id='pPgDg'></small><noframes id='pPgDg'>

    1. <legend id='pPgDg'><style id='pPgDg'><dir id='pPgDg'><q id='pPgDg'></q></dir></style></legend>
      • <bdo id='pPgDg'></bdo><ul id='pPgDg'></ul>

        在 WHERE 子句中使用 mysql SUM()

        时间:2023-06-02
      1. <i id='mZs3p'><tr id='mZs3p'><dt id='mZs3p'><q id='mZs3p'><span id='mZs3p'><b id='mZs3p'><form id='mZs3p'><ins id='mZs3p'></ins><ul id='mZs3p'></ul><sub id='mZs3p'></sub></form><legend id='mZs3p'></legend><bdo id='mZs3p'><pre id='mZs3p'><center id='mZs3p'></center></pre></bdo></b><th id='mZs3p'></th></span></q></dt></tr></i><div id='mZs3p'><tfoot id='mZs3p'></tfoot><dl id='mZs3p'><fieldset id='mZs3p'></fieldset></dl></div>
          <tbody id='mZs3p'></tbody>

        1. <tfoot id='mZs3p'></tfoot>
        2. <legend id='mZs3p'><style id='mZs3p'><dir id='mZs3p'><q id='mZs3p'></q></dir></style></legend>

          <small id='mZs3p'></small><noframes id='mZs3p'>

            • <bdo id='mZs3p'></bdo><ul id='mZs3p'></ul>

                1. 本文介绍了在 WHERE 子句中使用 mysql SUM()的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  假设我有这张桌子

                  id | cash 
                  1    200
                  2    301
                  3    101
                  4    700
                  

                  并且我想返回第一行,其中所有先前现金的总和大于某个值:

                  and I want to return the first row in which the sum of all the previous cash is greater than a certain value:

                  例如,如果我想返回所有先前现金总和大于 500 的第一行,则应返回到第 3 行

                  So for instance, if I want to return the first row in which the sum of all the previous cash is greater than 500, is should return to row 3

                  如何使用 mysql 语句执行此操作?

                  How do I do this using mysql statement?

                  使用 WHERE SUM(cash) >500不起作用

                  推荐答案

                  你只能在 HAVING 子句中使用聚合进行比较:

                  You can only use aggregates for comparison in the HAVING clause:

                  GROUP BY ...
                    HAVING SUM(cash) > 500
                  

                  HAVING 子句要求您定义一个 GROUP BY 子句.

                  The HAVING clause requires you to define a GROUP BY clause.

                  要获取所有先前现金总和大于某个值的第一行,请使用:

                  To get the first row where the sum of all the previous cash is greater than a certain value, use:

                  SELECT y.id, y.cash
                    FROM (SELECT t.id,
                                 t.cash,
                                 (SELECT SUM(x.cash)
                                    FROM TABLE x
                                   WHERE x.id <= t.id) AS running_total
                           FROM TABLE t
                       ORDER BY t.id) y
                   WHERE y.running_total > 500
                  ORDER BY y.id
                     LIMIT 1
                  

                  因为聚合函数出现在子查询中,所以可以在 WHERE 子句中引用它的列别名.

                  Because the aggregate function occurs in a subquery, the column alias for it can be referenced in the WHERE clause.

                  这篇关于在 WHERE 子句中使用 mysql SUM()的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  上一篇:MySQL 将 timediff 输出转换为日、时、分、秒格式 下一篇:MySQL #1093 - 你不能在 FROM 子句中为更新指定目标表“赠品"

                  相关文章

                  <legend id='XLCUV'><style id='XLCUV'><dir id='XLCUV'><q id='XLCUV'></q></dir></style></legend>

                  <small id='XLCUV'></small><noframes id='XLCUV'>

                  <i id='XLCUV'><tr id='XLCUV'><dt id='XLCUV'><q id='XLCUV'><span id='XLCUV'><b id='XLCUV'><form id='XLCUV'><ins id='XLCUV'></ins><ul id='XLCUV'></ul><sub id='XLCUV'></sub></form><legend id='XLCUV'></legend><bdo id='XLCUV'><pre id='XLCUV'><center id='XLCUV'></center></pre></bdo></b><th id='XLCUV'></th></span></q></dt></tr></i><div id='XLCUV'><tfoot id='XLCUV'></tfoot><dl id='XLCUV'><fieldset id='XLCUV'></fieldset></dl></div>
                  <tfoot id='XLCUV'></tfoot>

                        <bdo id='XLCUV'></bdo><ul id='XLCUV'></ul>