SQLite查询含废弃字段thankful返回n/a,求代码修正方案
解决方案
问题出在thankful字段在2022年10月后无数据(值为NULL),SQLite中只要加法表达式里存在NULL,整个求和结果就会变成NULL,导致AVG()无法计算有效平均值。你需要用COALESCE()函数把NULL的thankful值替换为0,保证求和逻辑始终有效。
修改后的查询代码:
SELECT SUBSTR(facebookOwnPosts.time, 1, 7) AS month, ROUND ( AVG ( likes + love + wow + haha + sad + angry + comments + shares + COALESCE(thankful, 0) ) ) AS enagegementperpost FROM facebookOwnPosts GROUP BY month
说明
COALESCE(thankful, 0)的作用是:如果thankful字段的值为NULL(包括字段不存在导致的NULL),就用0替代它参与计算;如果字段有有效值,则使用原数值。- 修改后,即便2022年10月之后的行没有
thankful数据,求和结果依然是其他互动类型的总和,AVG()就能正常计算每个月的平均互动量。
内容的提问来源于stack exchange,提问作者becks
相关产品推荐
相关产品推荐

