Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 8, 2018 12:05:51

MaratD
Зарегистрирован: 2016-01-25
Сообщения: 138
Репутация: +  0  -
Профиль   Отправить e-mail  

sqlite

Здравствуйте, уважаемые разработчики. Можно ли SQLite таблицу вида:

Фамилия | Количество
Петров | 2
Иванов | 1
Анютина | 3
Иванов | 2
Петров | 3

свернуть к виду

Фамилия | Количество
Анютина | 3
Иванов | 3
Петров | 5

То есть одинаковые фамилии просуммировать и отсортировать по алфавиту. В таблице около 500000 записей. И скажется ли это на размере базы? Должно получиться около 150 записей.

Офлайн

#2 Фев. 8, 2018 12:10:51

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

sqlite

GROUP BY + SUM



Офлайн

#3 Фев. 8, 2018 12:34:44

MaratD
Зарегистрирован: 2016-01-25
Сообщения: 138
Репутация: +  0  -
Профиль   Отправить e-mail  

sqlite

Я извиняюсь, можно поподробнее. Не совсем понятно. Это параметры выборки?

Офлайн

#4 Фев. 8, 2018 13:23:44

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

sqlite

MaratD
изучите SQL если работаете с SQLite, SUM это строенная функция, GRIUP BY группировка



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#5 Фев. 8, 2018 13:38:46

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2679
Репутация: +  182  -
Профиль   Отправить e-mail  

sqlite

> То есть одинаковые фамилии просуммировать и отсортировать по алфавиту.

Отсортировать не получится. Т.к. таблица состоит из множества записей, а множества не сортируются.

> И скажется ли это на размере базы? Должно получиться около 150 записей.

У тебя сама база не нормализованна, тебе не суммировать надо, а менять схему всей БД.



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#6 Фев. 14, 2018 07:44:11

MaratD
Зарегистрирован: 2016-01-25
Сообщения: 138
Репутация: +  0  -
Профиль   Отправить e-mail  

sqlite

Здравствуйте.
Можно ли подключиться к базе SQLite при начале работы программы (в начале дня), а закрыть базу только при завершении работы программы (в конце дня)? Или открывать-закрывать базу только при операциях с ней? Поделитесь опытом пожалуйста как правильнее.

Офлайн

#7 Фев. 14, 2018 08:14:17

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

sqlite

 База Sqlite - это как правило файл на вашем же компьютере, если вы обращаетесь к БД только из одной программы, то как мне кажется, без разницы. Другое дело, при разработке программы вы всегда должны рассчитывать на то, что ваша программа рано или поздно перерастет текущее ТЗ и вероятно в будущем вам надо будет использовать какую-то СУБД посерьезней. Лучше сразу пишите без оглядки на Sqlite.



Отредактировано FishHook (Фев. 14, 2018 08:16:46)

Офлайн

#8 Фев. 14, 2018 09:54:26

MaratD
Зарегистрирован: 2016-01-25
Сообщения: 138
Репутация: +  0  -
Профиль   Отправить e-mail  

sqlite

А если использовать, например, postgresql, то подключаемся только один раз в начале работы программы?

Офлайн

#9 Фев. 14, 2018 13:38:27

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2679
Репутация: +  182  -
Профиль   Отправить e-mail  

sqlite

> А если использовать, например, postgresql, то подключаемся только один раз в начале работы программы?

Да.



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#10 Фев. 14, 2018 13:54:36

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

sqlite

MaratD
А если использовать, например, postgresql, то подключаемся только один раз в начале работы программы?
В этом случае, лучше всего использовать пулл соединений и использовать для этого готовый компонент. Таким образом, лучше сразу взять какую-нибудь взрослую библиотеку, которая абстрагирует вас от вопросов связанных с нюансами реализаций СУБД и провайдеров к ним (не стоит надеяться, что ваши SQL-запрсы будут стопроцентно совместимы с постгресом), например sqlalchemy



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version