У меня есть приложение Python. Он имеет базу данных SQLite, полную данных о вещах, которые происходят, извлекаемые веб-скребком из Интернета. Эти данные включают в себя группы времени-времени, такие как временные метки Unix, в столбце, зарезервированном для них. Я хочу получить имена организаций, которые делали что-то, и подсчитывать, как часто они их делали, но делать это каждую неделю (т. Е. 604 800 секунд). У меня есть данные.Как сделать GROUP BY на каждом заданном приращении значения поля?
псевдокод:
for each 604800-second increment in time:
select count(time), org from table group by org
По сути то, что я пытаюсь сделать, это итерацию через базу данных, как список, отсортированный по столбцу времени, с значением шага 604800. Цель состоит в том, чтобы проанализировать, как распределение из разных организаций в целом изменились с течением времени.
Если это вообще возможно, я бы хотел избежать вытягивания всех строк из db и обработки их в Python, поскольку это кажется a) неэффективным и b), вероятно, бессмысленным, учитывая, что данные находятся в базе данных.
Да, вы можете использовать функцию strftime для форматирования строки даты и времени (и модификатора unixepoch, если это то, с чего вы начинаете), а также более простой подход, основанный на усечении номера unix-epoch. –
Спасибо! это решение; TO_CHAR не существует в sqlite, но функции strftime делают, и я смог сортировать его таким образом. – user106514