Агрегатные функции в операторе Where в SQLite

Поскольку файл будет содержать много информации, загрузка всей памяти файла, добавление информации и запись всего файла обратно в файловую систему - как указано в некоторых ответах - окажется проблематичной

blockquote>

Если ваш файл действительно слишком большой, чтобы поместиться в памяти, то либо исходный json должен был быть разбит на более мелкие независимые части, либо это просто неправильный вариант использования json. То, что у вас есть в данном случае, является проблемой дизайна, а не проблемой кодирования.

Существует по крайней мере один потоковый анализатор json , который может или нет позволить вам решить проблему, в зависимости от структуры исходных данных и эффективных обновлений, которые вы должны сделать. [114 ]

При этом на современных компьютерах вам нужен действительно огромный json-файл, чтобы в конечном итоге съесть все ваши оперативные памяти, поэтому прежде всего вам следует просто проверить эффективный размер файла и объем памяти, который необходимо проанализировать для Python.

11
задан Kyle Cronin 24 December 2008 в 00:57
поделиться

2 ответа

SELECT * from foo where timestamp = (select max(timestamp) from foo)

или, если SQLite настаивает на том, чтобы рассматривать, подвыбирает как наборы,

SELECT * from foo where timestamp in (select max(timestamp) from foo)
17
ответ дан 3 December 2019 в 04:54
поделиться

Я думаю, что ответил на этот вопрос 5 раз на прошлой неделе теперь, но я также устал для нахождения ссылки на одного из тех прямо сейчас, таким образом, здесь это снова...

SELECT
     *
FROM
     table T1
LEFT OUTER JOIN table T2 ON
     T2.timestamp > T1.timestamp
WHERE
     T2.timestamp IS NULL

Вы в основном ищете строку, где никакие другие соответствия строки, который является позже, чем она.

Примечание: Как указано в комментариях, этот метод не будет работать также в этом виде ситуации. Это будет обычно работать лучше (на SQL Server, по крайней мере) в ситуациях, где Вы хотите последнюю строку для каждого клиента (как пример).

1
ответ дан 3 December 2019 в 04:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: