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

标签 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;

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

在 accomplices 表中,有一个 'shares' 列,其中包含强盗获得的股份。我想获得每次抢劫的平均份额。

当我尝试使用 AVG(shares) 时,它说我需要将所选列设置为 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;

解决此类问题的常用方法有哪些?

最佳答案

按您希望唯一的列进行分组,并对您希望显示的其余列使用聚合函数

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

关于sql - 使用具有多个投影的聚合函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25325734/

相关文章:

sql - Oracle DB LIKE 查询 NULL 值

MySQL 在where 子句中使用函数列?

带有主题和子主题的年级 MySQL 表设计

sql - 如何获得时间戳的平均值?数据库

sql - 在sql中用多个集合对记录进行分组

mysql - 为 MySQL 数据库中的表创建触发器(语法错误)

sql - 如何在 HP Vertica 中随机选择 100 条记录?

postgresql - 如何使用 pg_stat_statements 记录查询参数?

c++ - 使用大数据集加速 postgresql 查询

sql - 调试具有双子查询、单子(monad)查询和所有内连接语句的查询之间的性能差异(和问题)