Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 在分组列中添加值_Sql_Postgresql - Fatal编程技术网

Sql 在分组列中添加值

Sql 在分组列中添加值,sql,postgresql,Sql,Postgresql,我有两个postgress表Users(userId、city、email)和Purchase(userId、ItemId、name、amount),我想运行一个查询,以获得用户id购买的项目总数和用户花费的总金额。如何获得这些结果?您需要使用count()、sum()函数和分组方式。尝试: select u.userID, count(p.ItemID) as TotalItemsPurchased, sum(p.amount) as TotalAmountSpent from Users u

我有两个postgress表Users(userId、city、email)和Purchase(userId、ItemId、name、amount),我想运行一个查询,以获得用户id购买的项目总数和用户花费的总金额。如何获得这些结果?

您需要使用
count()
sum()
函数和
分组方式。尝试:

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

如果您只关心已购买的用户,则不需要加入

select p.user_id, count(*), sum(p.amount)
from purchases p
group by p.user_id;
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;
如果您确实关心没有购买的用户,请使用
left join

select p.user_id, count(*), sum(p.amount)
from purchases p
group by p.user_id;
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;

请(通过点击下面的链接)提出您的问题,并根据这些数据添加一些内容和预期输出。请(您的问题-不要在评论中发布代码或其他信息)将couserID更改为userId@Shekhar-如果我在查找某些项目ID,我如何修改查询?用户的某些项目ID?