MySQL - 基于不同列 A 值的平均列 B 值

标签 mysql sql subquery

我正在尝试根据 A 列的不同(国家/地区)从 B 列中找到平均值。

Argentina   49.5600
Argentina   31.5100
Austria     353.0700
Austria     67.8800
Belgium     6.2700
Belgium     0.1700

这是表格的一部分。我正在尝试根据国家/地区对 B 列中的值进行平均,例如仅对阿根廷平均 49.5 + 31.5 等。

到目前为止,我已经尝试了几种组合,但都没有成功。

select shipcountry, round(avg(freight), 1)
from Table.Orders
order by shipcountry;

select shipcountry,
    (select round(avg(freight), 1)
    from Table.Orders)
from Table.Orders
order by shipcountry;

第一个查询仅返回包含单个国家/地区和值的一行。第二个查询返回国家,但 B 列是一起平均的。有没有办法按国家/地区划分平均值?

最佳答案

不需要子查询,您只是缺少 GROUP BY 子句:

SELECT shipcountry, ROUND(AVG(freight),1)
FROM Table.Orders
GROUP BY shipcountry;

GROUP BY in the docs

关于MySQL - 基于不同列 A 值的平均列 B 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43193613/

相关文章:

mysql - 在 google bigquery 中选择内部案例语句

mysql - 从 2 个表中选择查询

MYSQL 更新嵌套子查询

MySQL从另一个表中获取最近的列

php - 获取值作为数组值

mysql - 管理从一个数据库到另一个数据库的数据的方法

c# - 如何在 C# 中检查 SQL SqlDataSource 中的零行?

mysql - 如果查询在 MySql 中返回空值,我如何设置 0?

mysql - 使用 JOIN 时如何优化 COUNT 个子查询

android - 如何更新设备上已存在的 SQLite 表?