我想添加两个单独计数SQlite查询的结果。假设我有一个名为entries
和scores
2个表和有2个疑问:添加两个SQlite查询的结果
SELECT COUNT(1) FROM entries WHERE
key NOT IN (SELECT key FROM scores)
SELECT COUNT(1) FROM scores WHERE
value <= threshold
也许我可以做这样的事情让他们的成绩的总和:
SELECT COUNT(1) from (
SELECT key FROM entries WHERE
key NOT IN (SELECT key FROM scores)
UNION ALL
SELECT key FROM scores WHERE
value <= threshold
)
但是,这有点太低效?这很经常调用,可能会干扰UI的平滑度。
谢谢。
[编辑]什么实际上,我试图做的:
我在做一个应用程序,以帮助学习词汇。 entries
表保留有关单词类型,清晰度等的“静态”数据。scores
表保留有关您学习单词的情况的信息(例如,表现,预定的下次审阅时间)
要检查剩余单词学习/复习,我计算了scores
表格中尚未存在(即从未触摸过)或累积分数相当低(即需要复习)时不存在多少单词。
我之所以不把这两个表合并为1(这会让我的生活变得更容易),是因为有时我需要通过插入新单词,删除一些单词或更新其内容来更新entries
表,我还没有找到一个简单的方法to do that。如果我只是做INSERT OR REPLACE
,我会失去关于分数的信息。
“COUNT(1)”你是指......?它只接受'*'或列标识符。 [见这里](http://www.sqlite.org/lang_aggfunc.html)。 – 2011-05-22 09:32:55
这是一个我在某处学到的计算行数的技巧:D – Phil 2011-05-22 09:35:34
也许可以这样说,在英文中,*最终意图*是什么:)要统计COUNT(*)应该被使用的行数。 – 2011-05-22 09:36:12