如何获得 2 个不同 WHERE 子句的列的平均值?

Posted

技术标签:

【中文标题】如何获得 2 个不同 WHERE 子句的列的平均值?【英文标题】:How to get average of a column for 2 different WHERE clauses? 【发布时间】:2015-10-27 02:11:26 【问题描述】:

我需要获取 2 个不同 where 子句的列的平均值。这是我目前拥有的。

SELECT ART_Type,avg(ART_Length) AS AvgLength FROM Articles 
WHERE ART_Type = 'BUS' OR ART_Type = 'LAW' ;

我需要获取 ART_Length 列的平均值,其中 ART_Type 列是 LAW 或 BUS。

我还需要在查询结果的第一列显示ART_Type。

当我运行上面的代码时,我得到了错误:

“您的查询未将指定的表达式 'ART_Type' 作为聚合函数的一部分。”

谢谢

【问题讨论】:

GROUP BY ART_Type ~ support.office.com/en-us/article/… 不客气。下一次,尝试搜索错误消息(省略架构的详细信息,例如表/列名)。这对我来说马上就出现了~***.com/questions/19430500/… @phil 那是我做的第一件事。我看了一些答案,但我不知道他们做了什么不同 【参考方案1】:
    SELECT ART_Type,avg(ART_Length) AS AvgLength 
    FROM Articles WHERE ART_Type = 'BUS' OR ART_Type = 'LAW' 
    GROUP BY ART_Type ;

【讨论】:

【参考方案2】:
GROUP BY ART_Type

谢谢菲尔

【讨论】:

以上是关于如何获得 2 个不同 WHERE 子句的列的平均值?的主要内容,如果未能解决你的问题,请参考以下文章

MYSQL SELECT:如何获取一个额外的列,指示是不是满足 WHERE 子句中的第一个或第二个条件?

mysql'WHERE'条件中的列号

仅使用 WHERE 子句组合 LIKE 和 IN

使用子查询添加具有不同 where 子句的列

BigQuery 将 rank / percent_rank 应用于带有 WHERE 子句的列

索引 创建原则