Тема: конвертувати sql запит в sqlalchemy
Привіт)
Потрібна ваша допомога. Ніяк не можу з sql запит перевести в sqlalchemy
select cast(date as date), count(registration) as registrations, count(payment.id) as number_of_payments, sum(sum), count(case tariff_id when 1 then 1 else null end) as for_month, count(case tariff_id when 2 then 1 else null end) as for_3_month from payment left join site_user on cast(date as date) = cast(registration as date) group by cast(date as date)
Приклад виводу даного запиту
Структура payment
Структура site_user
Скоріш за все - в запиті є купа недоліків, хотів би почути вашу критику і поради.
Але головна проблема полягає в конвертаціїї його в sqlalchemy запит
Насамперед виникла проблема з left join.
Спробував щось типу такого
query = db.session.query(Payment, Site_user).outerjoin(Site_user, cast(Payment.date, Date)==cast(Site_user.registration, Date))
Це працює, але при додаванні до query
.group_by(cast(Payment.date, Date))
видає помилку
sqlalchemy.exc.ProgrammingError: (psycopg2.errors.GroupingError) column "payment.id" must appear in the GROUP BY clause or be used in an aggregate function
А ще не знаю що робити з count-ами, ще й з умовами