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

时间:2017-04-03 20:24:50

标签: 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列完全平均。有没有办法按国家划分平均值?

1 个答案:

答案 0 :(得分:3)

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

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

GROUP BY in the docs