在分组的列中添加值

时间:2019-10-04 13:26:57

标签: sql postgresql

我有两个postgress表Users(用户标识,城市,电子邮件)和Purchase(用户标识,商品标识,名称,金额),我想运行一个查询,以便向我提供一个用户标识购买的商品总数,并向我提供总额由用户花费。如何获得这些结果?

3 个答案:

答案 0 :(得分:0)

您需要使用count()sum()函数和group by。试试:

select u.userID, count(p.ItemID) as TotalItemsPurchased, sum(p.amount) as TotalAmountSpent
from Users u
inner join Purchase p on p.userID = u.userID
group by u.userID

答案 1 :(得分:0)

select couserID, count(p.ItemID) as "TotalItemsPurchased", sum(p.amount) as "TotalAmountSpent" from Users u 
inner join Purchase p on p.userId = u.userId
group by userID

答案 2 :(得分:0)

如果您只关心购物的用户,则不需要join

select p.user_id, count(*), sum(p.amount)
from purchases p
group by p.user_id;

如果您也关心没有购物的用户,请使用left join

select u.user_id, count(p.user_id), sum(p.amount)
from users u left join
     purchases p
     on u.user_id = p.user_id
group by u.user_id;