我有一個表,其中唯一相關的列是completionDate,這是一個項目被標記爲完成的時代之後的秒數。我想做一個select語句來計算完成的項目數量,按它們被標記爲完整的那一週進行分組。到目前爲止,我有這樣的事情:SQLite表達式來計算按行分組的行數
SELECT (completionDate-min)/(60*60*24*7)
FROM
(SELECT min(completionDate) AS min
FROM TASK)
LEFT JOIN task;
它返回的結果:
0
2
2
2
3
3
3
這意味着,1項是在第一週完成,3項是在第三完成和第四周。
我可以通過編程(特別是,本週的開始)爲min
尋找更好的價值。我真正需要的是根據結果進行分組並計算結果數量的方法。理想的結果是:
0|1
2|3
3|3
我的下一步是要試試這個:
SELECT COUNT(idx)
FROM
(SELECT ((completionDate-min)/(60*60*24*7)) AS idx
FROM
(SELECT min(completionDate) AS min
FROM TASK)
LEFT JOIN task)
GROUP BY idx;
其中給出的結果是,在某種程度上,我不明白,看的那種類型的權利,但錯了:
0
1
3
3
在這一點上,我只是卡住了。我承認我的SQL並不是那麼棒,所以對我所擁有的任何優化都會感激不盡。
加入 「IDX」 到select子句,找到奇數0計數:SELECT idx,COUNT(idx)... – 2009-10-30 18:46:57