Android 如何在不破坏其他值之和的情况下获得房间db中所有非零值的平均值?

Android 如何在不破坏其他值之和的情况下获得房间db中所有非零值的平均值?,android,sql,database,android-room,Android,Sql,Database,Android Room,我有一个表,其中有行val1和val2(两个数字) 我需要选择val1的SUM,但AVG需要一秒钟。问题是,如果val2为0,则不应计入val2平均值,但仍应计入val1总和 示例表: 身份证件 瓦尔1 瓦尔2 1. 3. 0 2. 2. 2. 3. 1. 0 4. 0 4. 最简单的方法可能是NULLIF(): NULLIF()是一个标准的SQL函数,当第一个参数与第二个参数中的值匹配时,它返回NULL。AVG(当val2 0时,则为val2 end)如果您害怕使用NULL值,而不是0,则会发

我有一个表,其中有行val1和val2(两个数字)

我需要选择val1的
SUM
,但
AVG
需要一秒钟。问题是,如果val2为0,则不应计入val2平均值,但仍应计入val1总和

示例表:

身份证件 瓦尔1 瓦尔2 1. 3. 0 2. 2. 2. 3. 1. 0 4. 0 4.
最简单的方法可能是
NULLIF()


NULLIF()
是一个标准的SQL函数,当第一个参数与第二个参数中的值匹配时,它返回
NULL

AVG(当val2 0时,则为val2 end)
如果您害怕使用NULL值,而不是0,则会发生这种情况。@jarlh cool,谢谢,将尝试。实际上,我甚至没有想到使用null(可能是Kotlin影响)。但对我来说,这其实也是一个不错的解决方案。
SELECT SUM(val1) as val1,
       AVG(NULLIF(val2, 0)) as val2
FROM Table;