2014-03-02 53 views
2

我想通过post_author来计算平均结果。这里是我的代码:如何做条件平均?

AVG(CASE WHEN post_author = 1 THEN post_content ELSE 0 END)as avg 

它得到的100对2条结果(100,66.7),这应该是83.35 如果事情发生了错误?

+0

是post_auther和post_content数字列吗? – Ray

+0

使用'group by post_author'进行'avg'计算时出了什么问题? –

+1

考虑提供适当的DDL(和/或sqlfiddle)与期望的结果集合 – Strawberry

回答

4

你可以只下降了else条款,所以NULL在传递:

AVG(CASE WHEN post_author = 1 THEN post_content END) as "avg" 

您的查询对于一般的用途不匹配的值设置为0。你希望他们忽略,所以使用NULL

+0

AVG(CASE WHEN post_author = 1 THEN post_content ELSE NULL END),因为avg可以使其更清楚 – georgecj11