【问题标题】:MySQL - Average column B values based on distinct column A valuesMySQL - 基于不同列 A 值的平均列 B 值
【发布时间】:2017-08-28 20:23:54
【问题描述】:

我正在尝试根据 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.

标签: mysql sql subquery


【解决方案1】:

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

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

GROUP BY in the docs

【讨论】:

  • 效果很好,谢谢。我以为我之前尝试过,但一定忽略了它。
猜你喜欢
  • 2021-01-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-25
  • 2019-08-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多