使用具有多个投影的聚合函数

时间:2014-08-15 11:35:49

标签: sql postgresql

当我想要使用具有多列的聚合函数时,无法知道我的选项。

SELECT DISTINCT b.bankname, b.city, a.robberydate
FROM banks b, accomplices a
WHERE a.city = 'Chicago' and b.city ='Chicago' and b.bankname = a.bankname;

到目前为止,这是我的查询。

在共犯表中,有一个'份额'持有强盗获得股份的专栏。我想获得每次抢劫的平均份额。

当我尝试使用AVG(共享)时,它说我需要将所选列设置为GROUPED BY或聚合函数的一部分。

SELECT DISTINCT b.bankname, b.city, a.robberydate, AVG(shares)
FROM banks b, accomplices a
WHERE a.city = 'Chicago' and b.city ='Chicago' and b.bankname = a.bankname;

解决这类问题的常见方法是什么?

1 个答案:

答案 0 :(得分:3)

按您想要唯一的列分组,并对要显示的其余列使用聚合函数

SELECT b.bankname, b.city, a.robberydate, AVG(shares)
FROM banks b
join accomplices a on b.bankname = a.bankname
WHERE a.city = 'Chicago' and b.city ='Chicago'
group by b.bankname, b.city, a.robberydate