mysql avg 有条件的

标签 mysql average

是否可以获得一列的平均值,以及带有条件的同一列的平均值?或者干脆将这两个查询合二为一。

SELECT AVG( field ) from table

SELECT AVG ( field ) from table where col = some_val

如果没有一种简单的方法可以使用本地 mysql 函数将它们组合起来,存储函数是否能够处理它,或者用户定义的函数?

最佳答案

利用 null 值不包含在聚合函数中这一事实,我们可以使用 CASE 语句来控制平均值,如下所示:

select avg(amt) as average,
       avg(case when col=some_val then amt else null end) as conditionalAverage
  from myTable;

示例演示:http://sqlize.com/2IXwbWD2Eb

关于mysql avg 有条件的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8130110/

相关文章:

php - mySQL 查询不返回日期

python - python中列表列表的移动平均值

math - 需要 awk 数组帮助 - 求平均值

Excel - 具有 OR 条件的 AVERAGEIFS?

SQL 汇总和平均

mysql - 如何在 querydsl 中按字段位置排序?

mysql - 每行批量更新mysql中的匹配列值

sql - 查找成员超过五个的每个部门的平均工资

找不到 mysql.sock,我在哪里可以找到它?

mysql - 提高JOIN和GROUP BY性能的指标有哪些