【发布时间】:2021-02-12 05:39:54
【问题描述】:
我想从我的数据库中获取有关某些挑战的连续性的信息。我在 sqliteonline.com 中尝试了我的所有查询,因此我找到了一个满足我获取这些信息的要求的查询:
select challengeid, min(date) as min_date, max(date) as max_date, count(*) as length from (select t.*, row_number() over (partition by challengeid order by date) as seqnum from ACTIVE_CHALLENGES_TABLE t) t group by challengeid, date(date, '-' || seqnum || ' day') HAVING challengeid = 4 AND value != 0
在 sqliteonline.com 上一切正常,但在 Android Studio 中出现以下错误:
android.database.sqlite.SQLiteException: near "(": syntax error (code 1): , while compile: select challengeid, min(date) as min_date, max(date) as max_date, count() as length from (select t., row_number() over (partition by challengeid order by date) as seqnum from ACTIVE_CHALLENGES_TABLE t) t group by challengeid, date(date, '-' || seqnum || 'day' ) HAVING challengeid = 4 AND value != 0
我已经尝试找出导致错误的原因。在整个测试过程中我发现它可能是使用这个sn-p:SELECT row_number() OVER (challengeid) seqnum from ACTIVE_CHALLENGES_TABLE
我不知道我应该做什么。你能帮帮我吗?
【问题讨论】:
-
您使用的是不支持窗口函数的旧版 SQLite 吗?
-
版本为3.9.2
-
那已经很老了。您可能应该升级数据库。
标签: android sql database sqlite android-studio