我有一个表,其中唯一相关的列是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