这里有一个奇怪的问题,我的桌面上的Sqlite数据库浏览器中的查询执行得很好 - 结果完全符合预期 - 但在Android(4.4.2)中执行Cursor时抛出异常。我是Android和Sqlite的新手,所以也许我还没有发现“陷阱”。
简单查询:
select
max(_id) as '_id',
max(envid) as 'envid',
max(action) as 'action',
max(title) as 'title',
max(cast(version as INTEGER)) as 'version',
max(layout) as 'layout'
from template
where direction = 'return'
group by title
例外:
E / AndroidRuntime(20731):引起: android.database.sqlite.SQLiteException:聚合函数不是 允许在GROUP BY子句(代码1)中:,同时编译:select max(_id)为'_id',max(envid)为'envid',max(action)为'action', max(title)为'title',max(cast(版本为INTEGER))为'version', max(布局)为模板中的'layout',其中direction ='return'组 按标题
我希望看到如果我在group by子句中放置一个聚合函数......但我没有。
答案 0 :(得分:1)
这修复了它 - 这就是我真正需要的(参见上面Rohit5k2的评论。)
select _id, envid, action, title, max(cast(version as INTEGER)) as 'version', layout from template where direction = 'return' group by title