【发布时间】:2020-12-04 18:30:09
【问题描述】:
我需要计算第二列具有相同值的一列的平均值。例如,您有
Col1 | Col2
a | 2
a | 9
b | 6
b | 10
我需要检索按 Col1 分组的 Col2 的平均值,即 (9+2)/2 和 (6+10)/2。我可以在自己的单独查询中检索它,但它是平均值必须大于 7 的条件的一部分。mySQL 中的示例代码是
SELECT Col1, AVG(Col2) FROM tableName
GROUP BY Col1;
SELECT Col1 FROM tableName
WHERE (SELECT AVG(Col2) GROUP BY Col1) >= 7;
第一个查询正确地给了我按 Col1 分组的 Col2 的平均值,但第二个查询只是取整个 Col2 的平均值并返回大于所有列的计算平均值的值。为什么第二个查询没有按 col1 分组,我应该如何更改我的代码以正确分组元组?
【问题讨论】:
-
阅读 HAVING 子句参考手册。
标签: mysql sql average aggregate-functions having-clause