sql查询中的算法
我有一个动态的行数,我正在拉,我想做一些数学。故事是这样的: 表格列:sql查询中的算法,sql,Sql,我有一个动态的行数,我正在拉,我想做一些数学。故事是这样的: 表格列: "SELECT cu.id, cu.use_count FROM coupons_used cu WHERE cu.user_id = " . $_SESSION['user']->ID . ";"; 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,
"SELECT cu.id, cu.use_count
FROM coupons_used cu
WHERE cu.user_id = " . $_SESSION['user']->ID . ";";
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
- 优惠券id
- 使用计数
"SELECT cu.id, cu.use_count
FROM coupons_used cu
WHERE cu.user_id = " . $_SESSION['user']->ID . ";";
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
规则:
"SELECT cu.id, cu.use_count
FROM coupons_used cu
WHERE cu.user_id = " . $_SESSION['user']->ID . ";";
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
use\u count
输入只能是1
或-1
所需结果:
"SELECT cu.id, cu.use_count
FROM coupons_used cu
WHERE cu.user_id = " . $_SESSION['user']->ID . ";";
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的行,所以我希望用mysql完成所有的加/减操作,这样我将为每个唯一的优惠券id
设置一行,并为每行的使用计数
总计。我这样做1)是为了节省一步,2)是为了学习一些我还不知道的东西
电流输出:
"SELECT cu.id, cu.use_count
FROM coupons_used cu
WHERE cu.user_id = " . $_SESSION['user']->ID . ";";
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,用户id:1,优惠券id:1,使用计数:2//1+-1+1
您所寻找的是一个“聚合函数”。在这种情况下,您希望将SUM
aggregate函数与groupby
子句结合使用。这将通过以下方式为组中指定的每个唯一结果返回一条记录:
"SELECT cu.id, SUM(cu.use_count)
FROM coupons_used cu
WHERE cu.user_id = " . $_SESSION['user']->ID . "
GROUP BY cu.coupon_id;";
你要找的是所谓的“聚合函数”。在这种情况下,您希望将SUM
aggregate函数与groupby
子句结合使用。这将通过以下方式为组中指定的每个唯一结果返回一条记录:
"SELECT cu.id, SUM(cu.use_count)
FROM coupons_used cu
WHERE cu.user_id = " . $_SESSION['user']->ID . "
GROUP BY cu.coupon_id;";
我仍然不知道你想做什么……你只是在寻找sum
?你没有清楚地描述你遇到的问题,或者问一个可以回答的问题。您是否需要在Google上搜索SQL教程以了解诸如SUM()之类的聚合函数?问题不是问题的基本层面,尽管这是一个RTFM问题。问题是这表明你缺乏研究努力。我可不希望有你这样的名声。顺便说一句,我不是那个被否决的人。我的看法是:没有人知道一切。问RTFM问题是可以的,但前提是你真的先做了RTFM:-)。我仍然不知道你想做什么…你只是在寻找sum
?你没有清楚地描述你遇到的问题或提出一个可以回答的问题。您是否需要在Google上搜索SQL教程以了解诸如SUM()之类的聚合函数?问题不是问题的基本层面,尽管这是一个RTFM问题。问题是这表明你缺乏研究努力。我可不希望有你这样的名声。顺便说一句,我不是那个被否决的人。我的看法是:没有人知道一切。可以问RTFM问题,但前提是您确实先做了RTFM:-)。