在mysql中求和,而不是按分组

在mysql中求和,而不是按分组,mysql,sql,Mysql,Sql,我正在做一个小型的彩票游戏来娱乐和提高自己。 在数据库上,我有 table(id, package, value, price, purchase_code,round) 请看一个例子。有两个包,包1和包2。 package1的值为3,package2的值为4。这意味着,如果我买了套餐1,我得到了3张正在播放的门票,这给了我在当前一轮比赛中获胜的更大机会,因此它将3条记录插入一个包含信息的表中。因此,在本例中,我的表中有以下记录: id pacakage_id value p

我正在做一个小型的彩票游戏来娱乐和提高自己。 在数据库上,我有

table(id, package, value, price, purchase_code,round)
请看一个例子。有两个包,包1和包2。 package1的值为3,package2的值为4。这意味着,如果我买了套餐1,我得到了3张正在播放的门票,这给了我在当前一轮比赛中获胜的更大机会,因此它将3条记录插入一个包含信息的表中。因此,在本例中,我的表中有以下记录:

id     pacakage_id    value   price     purchase_code    round
1      1              3       10        w3hjkrw          1
2      1              3       10        w3hjkrw          1
3      1              3       10        w3hjkrw          1
我想看看用户的总体消费情况,为此,我使用了sumprice。 好的,但是正如你所看到的,三条记录是一次购买,所以sumprice会给我结果30。我试着按购买代码分组,但它并不是我想要的

代码如下:

$income_query = mysql_query("SELECT SUM(price) FROM lottery WHERE round = '$current_round' GROUP BY code") or die(mysql_error());
while($result = mysql_fetch_array($income_query)) {
$round_money = $result['SUM(price)']." $";

我认为您需要执行子查询以获取包id价格。可能会使用distinct,尽管我只会使用普通的聚合函数,但MAX将在这里完成这项工作

大概是这样的:-

SELECT code, SUM(package_id_price)
FROM(
    SELECT code, package_id, MAX(price) AS package_id_price
    FROM lottery 
    WHERE round = '$current_round' 
    GROUP BY code, package_id
) Sub1
GROUP BY code

谢谢你,先生,我自己永远不会明白,但现在我学到了很多: