Php Mysql查询总和是否将每个结果相加?
对不起,如果我的问题没有意义。不确定我们是否只能用mysql来实现这一点。假设我有这样一个问题:Php Mysql查询总和是否将每个结果相加?,php,mysql,Php,Mysql,对不起,如果我的问题没有意义。不确定我们是否只能用mysql来实现这一点。假设我有这样一个问题: SELECT SUM(win) * 100 as win_profit, date, uid FROM `tips` WHERE uid = 60 AND placed = 1 GROUP by date 这显然会得到数据库中每天win列的总和 假设数据库有: |___win___|____date____| | 10 | 2014-04-16 | | 10 | 2014-04
SELECT SUM(win) * 100 as win_profit, date, uid FROM `tips` WHERE uid = 60 AND placed = 1 GROUP by date
这显然会得到数据库中每天win列的总和
假设数据库有:
|___win___|____date____|
| 10 | 2014-04-16 |
| 10 | 2014-04-16 |
| 10 | 2014-04-17 |
| 10 | 2014-04-18 |
| 10 | 2014-04-18 |
| 10 | 2014-04-18 |
| 10 | 2014-04-19 |
| 10 | 2014-04-19 |
| 10 | 2014-04-19 |
这将导致:
20
10
30
30
我如何才能得到结果,使每个加起来,仅mysql查询。因此,结果将是:
20
30
60
90
您可以获取所有不同的日期,并
左键联接
,以查找截至该日期的所有值的总和;我保留了示例查询中的100乘数,但您需要删除它以获得与所需结果匹配的结果
SELECT 100 * SUM(b.win), a.date
FROM (SELECT DISTINCT date FROM `tips`) a
LEFT JOIN tips b ON a.date >= b.date
GROUP BY a.date
ORDER BY a.date
.这可能是另一种方法
SET @full_sum=0;
SELECT @full_sum+SUM(win) as win_profit, date as this_date, uid,
@full_sum:=(SELECT @full_sum+SUM(win)
FROM `testing` WHERE uid = 60
GROUP by date HAVING date=this_date)
FROM `testing` WHERE uid = 60 GROUP by date;
别道歉,这是个有趣的问题。不过,我不确定是否/如何做到这一点。正如您所建议的,一旦返回了值,那么在mysql之外创建该功能就很容易了,如果不能仅使用mysql来完成的话。我也很想看看如何在php中实现它。但是我使用mysql循环作为Json输出,但是我可以稍后从php中进行。循环结果并执行$sum+=$row[0]非常简单。顺便问一下,主键是什么?谢谢,这看起来是一个不错的结果。我现在将测试它,只使用mysql。