sql查询中的算术

时间:2015-05-08 20:21:05

标签: sql

我有一个动态的行数,我想要做一些数学运算。这是故事:

表格列:

  • ID
  • 时间戳
  • USER_ID
  • coupon_id
  • use_count

当前查询:

"SELECT cu.id, cu.use_count 
FROM coupons_used cu
WHERE cu.user_id = " . $_SESSION['user']->ID . ";";

规则:

use_count输入只能是1-1

期望的结果:

我知道我会拉出具有相同coupon_id的行,所以我希望做的就是完成所有使用mysql的加/减,这样我就会有一行对于每个唯一coupon_id,每行的总计为use_count。我这样做1)保存步骤2)学习我还不知道的东西。

当前输出:

id:1, timestamp:5/6/15, user_id:1, coupon_id:1, use_count:1
id:2, timestamp:5/7/15, user_id:1, coupon_id:1, use_count:-1
id:3, timestamp:5/7/15, user_id:1, coupon_id:1, use_count:1
id:4, timestamp:5/8/15, user_id:1, coupon_id:1, use_count:1

所需输出

id:null, timestamp:null, user_id:1, coupon_id:1, use_count:2 // 1 + -1 + 1

1 个答案:

答案 0 :(得分:4)

您正在寻找的内容称为"聚合函数"。在这种情况下,您希望将SUM聚合函数与Group By子句结合使用。这将为Group By:

中指定的每个唯一结果返回单个记录
"SELECT cu.id, SUM(cu.use_count) 
FROM coupons_used cu
WHERE cu.user_id = " . $_SESSION['user']->ID . "
GROUP BY cu.coupon_id;";