我想添加兩個單獨計數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