我知道该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查询以获取以下输出? 问题答案: 试试这个: