编辑:我已将这个问题移至 ,因为dba.stackexchange我收到了建议,认为该社区可以更好地解决我的问题。
我一直在阅读有关 PostgreSQL 的新 CTE 功能 - MATERIALIZED 或 NOT MATERIALIZED 关键字 - 它可以在某些情况下提供额外的优化机会,前提是这样做是安全的。对此PostgreSQL 更新的评论如下:
...用户可以通过指定 MATERIALIZED 强制旧行为 [LESS OPTIMIZED];当查询故意使用WITH作为优化栅栏以防止计划选择不当时,这主要有用。
我一直想知道,考虑到在某种情况下使用 CTE 优化(不是 MATERIALIZED 关键字)是安全的,在这种情况下,优化程度较低的“MATERIALIZED”关键字可以“防止错误的计划选择”,如引用所述或提供更好的计划?
非常简单的问题,我无法向谷歌/找到答案.
我有一个简单的文件 - "test.txt"
Gender arch1
M 99
F 97
M NA
Run Code Online (Sandbox Code Playgroud)
我使用read.table将其加载到结果集中 - 工作正常.
attach(resultset)
Run Code Online (Sandbox Code Playgroud)
现在,我想要_something_会给我
mean(arch1, [_SOMETHING_]) = 65.3 (and *_NOT_* 98)
Run Code Online (Sandbox Code Playgroud)
即不是na.rm = T或类似的.基本上,我想对待NA为0 -我不想做一些复杂的东西在这里与矩阵和dataframes.
从文件中只有NA = 0.当然,我不能成为第一个想要这个的人吗?而且我不想讨论NA和0是如何不一样的.我认为想要计算平均数甚至超过失踪学生是完全有效的!