У меня есть таблица с единственным соответствующим столбцом, которое является завершением Date, через несколько секунд после того, как элемент был отмечен как завершенный. Я хотел бы сделать оператор 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 пункты были выполнены в третьем и 4 недели.
Я сможем найти лучшее значение для 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) ... –