当前位置: 首页 > 面试题库 >

MySQL的运行总数为COUNT

马奇略
2023-03-14
问题内容

我知道该set @running_sum=0; @running_sum:=@running_sum + ...方法,但是,就我而言,它似乎不起作用。

我的查询:

SELECT DISTINCT(date), COUNT(*) AS count 
   FROM table1
   WHERE date > '2011-09-29' AND applicationid = '123'
   GROUP BY date ORDER BY date

结果为我提供了唯一的日期,以及应用程序123的出现次数。

我想保持的总运行量count,以查看累积的增长。

现在,我正在用PHP进行此操作,但我想将其全部切换到MySQL。

使用本文第一行中的方法只是复制计数,而不是累加计数。

我想念什么?

PS该集合很小,只有大约100个条目。

编辑:你是对的ypercube:

这是running_sum的版本:

SET @running_sum=0;
SELECT date, @running_sum:=@running_sum + COUNT(*) AS total FROM table1
   WHERE date > '2011-09-29' AND applicationid = '123'
   GROUP BY date ORDER BY date

计数列最终与我刚刚打印的COUNT(*)相同


问题答案:

更新的答案

OP要求使用单查询方法,这样就不必将用户变量与使用变量来计算运行总额分开设置:

SELECT d.date,
       @running_sum:=@running_sum + d.count AS running
  FROM (  SELECT date, COUNT(*) AS `count`
            FROM table1
           WHERE date > '2011-09-29' AND applicationid = '123'
        GROUP BY date
        ORDER BY date ) d
  JOIN (SELECT @running_sum := 0 AS dummy) dummy;

用户变量的“内联初始化”对于模拟其他分析功能也很有用。事实上,我从答案知道了这种技术像这样的。

原始答案

您需要引入一个封闭查询,以@running_sum对COUNT(*)条记录进行制表:

SET @running_sum=0;
SELECT d.date,
       @running_sum:=@running_sum + d.count AS running
  FROM (  SELECT date, COUNT(*) AS `count`
            FROM table1
           WHERE date > '2011-09-29' AND applicationid = '123'
        GROUP BY date
        ORDER BY date ) d;

另请参阅此答案。



 类似资料:
  • 问题内容: 我有这个MySQL查询: 返回如下内容: 我真正想要的是末尾的另一列以显示运行总计: 这可能吗? 问题答案: 也许对您来说是一个更简单的解决方案,并且可以防止数据库不得不执行大量查询。这仅执行一个查询,然后在一次通过中对结果进行一些数学运算。 这将为您提供一个额外的RT(运行总计)列。不要错过顶部的SET语句来首先初始化运行中的total变量,否则您将只获得一列NULL值。

  • 问题内容: 我有这个MySQL查询: 返回如下内容: 我真正想要的是末尾的另一列显示运行总计: 这可能吗? 问题答案: 也许这对您来说是一个更简单的解决方案,并且可以防止数据库不得不执行大量查询。这仅执行一个查询,然后在一次通过中对结果进行一点数学运算。 这将为您提供一个额外的RT(运行总计)列。不要错过顶部的SET语句来首先初始化运行的total变量,否则您将只获得一列NULL值。

  • 问题内容: 我有一个具有许多行的mysql表,并且在每一行中都有一个称为“值”的字段,该字段的值在行与行之间会有所不同。我想要的是选择所有行并计算所有“值”字段的总和。 任何的想法? 问题答案: 你是这个意思吗 如果您有多个要返回的列,只需将每个非聚合(即求和)行添加到子句中:

  • 问题内容: 在没有应用任何条件的情况下,对表中的行总数进行计数的最佳MySQL命令是什么?我正在通过php执行此操作,所以也许有一个php函数可以为我执行此操作?我不知道。这是我的php的示例: 问题答案:

  • 对于这个问题,我找到了一些不同的答案,但似乎无法使查询正常工作。 这是我的表,其中包含user、weekNo、salesTotalYTD列。 我目前正在把这些拿出来,按周分组,就像这样: 我试图做但无法完成的是: 这是我为第一次通过工作的查询,但之后的每一次通过都是错误的: 更新 更新代码由蒂姆提供,但返回错误:

  • 问题内容: 有人可以帮忙我的SQL吗? 我有一个表,其中包含诸如: 如何编写SQL查询以获取以下输出? 问题答案: 试试这个: