Форум программистов, компьютерный форум, киберфорум
Python: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 10.04.2018
Сообщений: 86

Запрос для получения кол-ва продаж за последние x дней (SQLAlchemy,Flask,PostgreSQL)

15.05.2020, 12:53. Показов 4845. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть таблица в БД postgresql вида:

ID,Count,Date,Shop_id
Нужно написать запрос используя SQLAlchemy (ну или чистый SQL я его вставлю), чтобы получить кол-во продаж за последние x ДНЕЙ. Например:

0, 10, 2020.01.01, 1
1, 10, 2020.01.01, 1
2, 1, 2020.01.02, 1
3, 1, 2020.01.02, 1
4, 1, 2020.01.02, 1
5, 100, 2020.01.04, 1

После запроса должно получится (x = 2):

0, 100, 2020.01.04
1, 3, 2020.01.02

Как это сделать?

Нулевые даты я потом сам заполню (ну конечно если возможно ещё как-то автоматом считать и даты когда не было продаж будет вообще супер). т.е (x = 2):

0, 100, 2020.01.04
1, 0, 2020.01.03

P.S
Дошёл до такого но не видит поле Sale.date чтобы выполнить order_by:
sales = db.session.query(sa.func.sum(Sale.count) .label('count')).filter(Sale.shop_id == i.shop_id).group_by(sa.func.date_part("d ay", Sale.date)).order_by(Sale.date.desc()).l imit(step).all()

Ошибка такая:
sqlalchemy.exc.ProgrammingError: (psycopg2.errors.GroupingError) column "sale.date" must appear in the GROUP BY clause or be used in an aggregate function
LINE 3: ...= 1 GROUP BY date_part('day', sale.date) ORDER BY sale.date ...
[SQL: SELECT sum(sale.count) AS count
FROM sale
WHERE sale.shop_id = %(shop_id_1)s GROUP BY date_part(%(date_part_1)s, sale.date) ORDER BY sale.date DESC
LIMIT %(param_1)s]
[parameters: {'shop_id_1': 1, 'date_part_1': 'day', 'param_1': 2}]

Текст ошибки я понял но вот в какую функцию агрегационую я должен положить sale.date или в какой order_by (Неужели надо вызывать его два раза?)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.05.2020, 12:53
Ответы с готовыми решениями:

Запрос к БД Acces для расчета кол-ва лет и кол-ва дней до ДР
Добрый день! Очень нужна помощь! Есть БД в Access: простенькая табличка: ФИО, День рождения В делфи пишу прогу. На форме в таблицу...

PHP код для получения кол-ва дней между первой/последней записью категории?
помогите, плиз, с php кодом для: 1.для получения количества дней между первой/последней записи категории. 2.Как такую операцию провести...

Подключить PostgreSQL к Flask API и передавать данные таблицы в flask
Нужна срочная и большая помощь, надеюсь только на вас. Есть Python+QT5 (PYQT5) приложение. В таблицу приложения (QTableWidget)...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.05.2020, 12:53
Помогаю со студенческими работами здесь

Flask-SQLAlchemy One to Many
Есть 2 модели: class Citizen(db.Model): import_id = db.Column(db.Integer, db.ForeignKey("import.import_id"), primary_key=True) ...

Flask-sqlalchemy many-to-many relationship
Имеется 3 таблицы: User, Phone, Subdivision и связующая таблица us_ph_sub. Все они связаны many-to-many отношениями. User: id |...

Нужно составить запрос на выборку за последние 7 дней
Приветствую форумчане. Сейчас у меня строится таблица, где указан день недели(7 столбцов всего) и расписаны часы(24 строки всего). В...

ЗАПРОС за последние десять дней+другие запросы
ПОМОГИТЕ осуществить вот такой запрос: Запрос который будет выводить следующую информацию для каждого абонента за последние десять дней:...

Как вычислить кол-во дней между двумя датами и перевести в кол-во лет, мес. дней?
Собственно, как вычислить кол-во дней я знаю: procedure TForm1.Button3Click(Sender: TObject); var D1,D2,Razn:integer; begin ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru