当我想要使用具有多列的聚合函数时,无法知道我的选项。
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;
解决这类问题的常见方法是什么?
答案 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