如何在编译期间修复Android Studio中Room中复杂SQL语句的验证错误?

法扎德·哈拉菲

我目前有一个DAO查询语句的sql语句:

    @Query(
            "select " +
            "    avg(q1.weight) over (rows between 3 PRECEDING AND CURRENT ROW) as adjusted_weight " +
            "from weight_record AS q1 " +
            "order by q1.date"
    )
    LiveData<List<AggregatedWeightRecord>> getAggregatedRecords();

当我直接在sqlite3内尝试此查询时,它可以正常工作。当我将其放入Android Studio并尝试进行编译时,出现此错误:

error: extraneous input '(' expecting {<EOF>, ';', K_ALTER, K_ANALYZE, K_ATTACH, K_BEGIN, K_COMMIT, K_CREATE, K_DELETE, K_DETACH, K_DROP, K_END, K_EXPLAIN, K_INSERT, K_PRAGMA, K_REINDEX, K_RELEASE, K_REPLACE, K_ROLLBACK, K_SAVEPOINT, K_SELECT, K_UPDATE, K_VACUUM, K_VALUES, K_WITH, UNEXPECTED_CHAR}

extraneous input ')' expecting {<EOF>, ';', K_ALTER, K_ANALYZE, K_ATTACH, K_BEGIN, K_COMMIT, K_CREATE, K_DELETE, K_DETACH, K_DROP, K_END, K_EXPLAIN, K_INSERT, K_PRAGMA, K_REINDEX, K_RELEASE, K_REPLACE, K_ROLLBACK, K_SAVEPOINT, K_SELECT, K_UPDATE, K_VACUUM, K_VALUES, K_WITH, UNEXPECTED_CHAR}

我试图更改查询,但现在需要使用Windows。我还在@Query之前添加了@SkipQueryVerification,但仍然收到错误。

我有什么选择可以编译并同时具有LiveData功能?

迈克

简而言之,您将不得不使用不使用窗口函数的替代查询。

SQLite 3.25.0中引入了对Window函数的支持,因此支持OVER的使用

在官方Android列表中,SQLite支持最高的版本是SQLite 3.19。因此,OVER是无效的语法,您不能使用Window函数。android.database.sqlite

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在迭代期间添加项目时修复ConcurrentModificationException错误

如何在Android中修复NetworkonMainThreadException?

如何在Android Java中修复sqliteException

Android Studio,CMake。如何在编译时打印调试信息?

如何在Android中修复libpng

如何在with语句中修复vba中的对象所需的错误?

React Native:如何在onPress期间修复Button组件的错误?

如何在XSLT中修复“在样式表编译期间报告错误”?

使用Apache POI时如何修复Android Studio中的Java编译器错误

如何修复Android Studio中的权限错误

如何在编译Python 3.2.0时修复错误

安装angular的CDK之后,在编译期间出现错误

如何在编译引导程序时减少错误?

在编译期间在Maven中执行批处理文件

在freebsd中,如何知道在编译期间在内核中启用了哪些选项

此代码如何在编译器中执行?

如何在Adapter Android中修复ArrayIndexOutOfBoundsException

在Nim中如何在编译时回显/打印?

如何在编译指示中处理 OpenMP 编译指示

如何将元素添加到 LinkedList 中而不在编译期间更改它们

如何在 npm 安装期间修复 node-gyp 错误

如何在编译任务期间摆脱随机常规错误

如何在 Android 聊天中修复 ListView 中的此错误

如何在quartus中修复Verilog HDL的长编译

在编辑从数据库循环的数据期间,如何在选择选项中获取数据?

如何在“git commit”期间在编辑器中显示“git log”?

如何在编译后的代码对象中传递参数?

在编译期间验证传递给构造函数的参数

如何在 ng build lib Angular 期间修复错误?