【发布时间】:2014-09-22 15:37:45
【问题描述】:
我正在尝试执行以下查询,但我误用了聚合函数 sum()
查询
select max(sum(entry.amount)),category.name from entry,category where entry.amount<0 and entry.cid=category.cid group by category.name
LogCat 输出
android.database.sqlite.SQLiteException: misuse of aggregate function sum() (code 1): , while compiling: select sum(entry.amount),category.name from entry,category where entry.amount<0 and entry.cid=category.cid group by category.name 09-22 20:20:18.626: E/AndroidRuntime(4093): at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
有什么建议吗? 问候, 兄弟
【问题讨论】:
-
对求和字段使用 别名(即:
... Sum(Entry.Amount) AS Total, ...)。AS是可选的(仅出于可读性目的)。 -
总和已经在聚合列 entry.amount 的值,因此您不能在单个查询中在此之上使用另一个聚合函数。
-
我想要每个类别的总和聚合函数给出的最大值。条目表有列金额和 cid,它们存储在特定类别上花费的金额,例如体育、食品、娱乐。Cid 将特定类别的 ID 存储在类别中table.Category 表只有 cid 和 name 两个字段。如果您发布有助于我获得所需结果的查询,这将很有帮助。谢谢你:)
-
如果您发布示例数据和所需结果会很有帮助。