我正在做一个小型彩票游戏,以娱乐和提高自己。
在数据库上,我有
table(id, package, value, price, purchase_code,round)
看一个例子。有两个包,即package1和package2。
package1的值为3,package2的值为4。这意味着,如果我购买package1,则有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
我想整体了解用户的花费,为此,我使用了sum(price)。
好的,但是如您所见,这三个记录是一次购买,因此sum(price)将给我结果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