我有一张桌子:
question_id | user_id | answer | weight
213 | 22 | 25 | 50
213 | 106 | 75 | 50
216 | 22 | 100 | 50
216 | 106 | 0 | 50
我想编写一个MySql查询,该查询将针对两个指定user_id
的进行计算:
user1's weight * (user1's answer - user2's answer)
并将所有这些值相加question_id
。因此,对于上面的示例,如果user1
的ID为22且user2
ID为106:
50*(25-75)+50*(100-0)=2500
您可以通过自我加入来做到这一点:
SELECT SUM(u1.weight * (u1.answer - u2.answer)) AS total
FROM table u1
JOIN table u2 ON u2.question_id = u1.question_id
WHERE u1.user_id = 22 AND u2.user_id = 106
确保列类型不是“无符号”,否则,您需要将值强制转换为有符号。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句