Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在编译过程中,如何修复android studio房间中复杂sql语句的验证错误?_Android_Sqlite_Compiler Errors_Android Room - Fatal编程技术网

在编译过程中,如何修复android studio房间中复杂sql语句的验证错误?

在编译过程中,如何修复android studio房间中复杂sql语句的验证错误?,android,sqlite,compiler-errors,android-room,Android,Sqlite,Compiler Errors,Android Room,我的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" ) LiveD

我的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();
@Query(
“选择”+
“平均(q1.重量)超过(前3行和当前行之间的行)作为调整后的重量”+
“从作为q1的重量记录”+
“第一季度订单。日期”
)
LiveData 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}
错误:无关输入“('expecting{,'”,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_保存点,K_SELECT,K_更新,K_真空,K_值,K_WITH,意外字符}
无关输入“')预期{,;”,K_更改,K_分析,K_附加,K_开始,K_提交,K_创建,K_删除,K_分离,K_删除,K_结束,K_解释,K_插入,K_PRAGMA,K_重新索引,K_释放,K_替换,K_回滚,K_保存点,K_选择,K_更新,K_真空,K_值,K_带,意外字符}
我已尝试更改查询,但现在需要使用windows。我还在@Query之前添加了@SkipQueryVerification,但仍然得到了错误


我可以选择哪些选项来编译此文件并同时使用LiveData?

简而言之,您必须使用不使用窗口函数的替代查询

年引入了对窗口功能的支持,因此在上使用了

官方Android列表中支持的最高版本是SQLite 3.19。因此,OVER是无效语法,不能使用窗口函数。

@RawQuery
试试看。如果失败,那么这表明存在合法的SQLite语法问题,SQLite自身的错误可能会给您提供更多线索(字符串连接问题?)。如果
@RawQuery
有效,这至少是您的解决方法。请尝试使用变量保存查询语句,然后在@query(variable)中使用变量谢谢您提供的信息。对于每个可能认为这个答案有用的人来说,解决方案是将笛卡尔或交叉连接与自动增量列相结合。这将是混乱但可行的。