MaratD
Фев. 8, 2018 12:05:51
Здравствуйте, уважаемые разработчики. Можно ли SQLite таблицу вида:
Фамилия | Количество
Петров | 2
Иванов | 1
Анютина | 3
Иванов | 2
Петров | 3
свернуть к виду
Фамилия | Количество
Анютина | 3
Иванов | 3
Петров | 5
То есть одинаковые фамилии просуммировать и отсортировать по алфавиту. В таблице около 500000 записей. И скажется ли это на размере базы? Должно получиться около 150 записей.
FishHook
Фев. 8, 2018 12:10:51
GROUP BY + SUM
MaratD
Фев. 8, 2018 12:34:44
Я извиняюсь, можно поподробнее. Не совсем понятно. Это параметры выборки?
JOHN_16
Фев. 8, 2018 13:23:44
MaratD
изучите SQL если работаете с SQLite, SUM это строенная функция, GRIUP BY группировка
Rodegast
Фев. 8, 2018 13:38:46
> То есть одинаковые фамилии просуммировать и отсортировать по алфавиту.
Отсортировать не получится. Т.к. таблица состоит из множества записей, а множества не сортируются.
> И скажется ли это на размере базы? Должно получиться около 150 записей.
У тебя сама база не нормализованна, тебе не суммировать надо, а менять схему всей БД.
MaratD
Фев. 14, 2018 07:44:11
Здравствуйте.
Можно ли подключиться к базе SQLite при начале работы программы (в начале дня), а закрыть базу только при завершении работы программы (в конце дня)? Или открывать-закрывать базу только при операциях с ней? Поделитесь опытом пожалуйста как правильнее.
FishHook
Фев. 14, 2018 08:14:17
База Sqlite - это как правило файл на вашем же компьютере, если вы обращаетесь к БД только из одной программы, то как мне кажется, без разницы. Другое дело, при разработке программы вы всегда должны рассчитывать на то, что ваша программа рано или поздно перерастет текущее ТЗ и вероятно в будущем вам надо будет использовать какую-то СУБД посерьезней. Лучше сразу пишите без оглядки на Sqlite.
MaratD
Фев. 14, 2018 09:54:26
А если использовать, например, postgresql, то подключаемся только один раз в начале работы программы?
Rodegast
Фев. 14, 2018 13:38:27
> А если использовать, например, postgresql, то подключаемся только один раз в начале работы программы?
Да.
FishHook
Фев. 14, 2018 13:54:36
MaratD
А если использовать, например, postgresql, то подключаемся только один раз в начале работы программы?
В этом случае, лучше всего использовать пулл соединений и использовать для этого готовый компонент. Таким образом, лучше сразу взять какую-нибудь взрослую библиотеку, которая абстрагирует вас от вопросов связанных с нюансами реализаций СУБД и провайдеров к ним (не стоит надеяться, что ваши SQL-запрсы будут стопроцентно совместимы с постгресом), например sqlalchemy