【发布时间】:2021-08-25 15:43:53
【问题描述】:
我在 Android 中使用 Room,并在我的 dao 文件中完成如下操作:
@Query("select DISTINCT timeStamp, batteryId, status " +
"from (select batteryDetails.*, " +
"lag(status) over (partition by batteryId order by timeStamp) as oldStatus " +
"from batteryDetails) batteryDetails " +
"where status is null or oldStatus <> status")
suspend fun getHistoryEventsData(): List<BatteryDetailsHistory>?
执行上述查询时,出现以下错误:
错误:输入 '(select batteryDetails.*, lag(status) over (') 没有可行的替代方案 公共抽象 java.lang.Object getHistoryEventsData(@org.jetbrains.annotations.NotNull() ^ 无关输入 '(' 期望 {, ';', 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}
查询语法可能存在一些问题。 请指导。
【问题讨论】:
-
查询看起来不错
-
我从后端得到的这个查询。将它与 Android Room 数据库一起使用。没事吧?
-
@eshirvana 你能指导我从上面的查询中删除这个窗口函数并让它变得简单..
-
查看答案
-
最后我处理了子查询。
标签: android sql sqlite android-sqlite android-room