我正在制作一个小型乐透游戏,以提高自己的乐趣。 在数据库上,我有
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)会给我结果30.我试着按buy_code进行分组,但它没有做我想要的。
以下是代码:
$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)']." $";
答案 0 :(得分:0)
认为您需要执行子查询才能获得包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