我正在尝试编写一个SQL查询,但这对我来说有点复杂。
我有一个包含这些字段的表格:
user1, user2, user1Payed, user2Payed.
user1
和user2
内有电子邮件。
user1Payed
和user2Payed
内有数字,代表一种付款方式。
这是一个表格,代表用户所做的所有订单。
user1
和user1Payed
受意义约束。
user2
和user2Payed
也受意义约束。
我的系统中的订单是由2个用户完成的,这些用户不必是不同的。这意味着订单可以是同一个用户。在这种情况下,user1Payed
和user2Payed
可能会有不同的值。
我的目标是编写一个查询,该查询将计算在特定数量上总共userPayed
(user1Payed
+ user2Payed
)的所有不同用户。这意味着我需要计算与不同用户关联的所有user1Payed
和user2Payed
的数量。
我知道应该在这里使用GROUP BY
,但这还不够,因为这不会解决所有问题。
举例说明我的user1
和user2
在特定行中的用户名是相同的,我将如何计算user1Payed
和user2Payed
?
似乎我应该做的是创建一个包含特定用户user1
的所有行的表格,然后检查其user1Payed
。
然后创建另一个表,其中包含用户user2
和计数user2Payed
的所有行。
在此之后我需要总结2个结果,从这个结果我可以得出最终结果。
但我不知道我将如何实现这一点。
非常感谢。
答案 0 :(得分:0)
使用UNION
组合每个用户列的数据。
SELECT user, SUM(amount) total
FROM (
SELECT user1 user, user1Payed amount
FROM table
UNION ALL
SELECT user2 user, user2Payed amount
FROM table
) u
GROUP BY user
我不知道“受意义约束”是什么意思,我希望它与答案无关。