-
-
Save agronholm/7703971 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
start_date = arrow.utcnow().replace(months=-2).datetime | |
end_date = arrow.utcnow().datetime | |
gen_stmt = db.session.query(func.generate_series(start_date, end_date, timedelta(1)).label('day')).subquery() | |
donation_day = func.date_trunc(time_unit, Donation.created).label('day') | |
donation_stmt db.session.query(donation_day, func.sum(Donation.amount).label('amount_raised')).\ | |
filter(created.between(start_date, end_date)).group_by(donation_day).subquery() | |
query = db.session.query(gen_stmt, coalesce(donation_stmt.c.amount_raised, 0)).outerjoin(donation_stmt, gen_stmt.c.day == donation_stmt.c.day) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
SELECT anon_1.day AS anon_1_day, coalesce(anon_2.amount_raised, %(param_1)s) AS coalesce_1
FROM (
SELECT generate_series(%(generate_series_1)s, %(generate_series_2)s, %(generate_series_3)s) AS day
) AS anon_1
LEFT OUTER JOIN (
SELECT date_trunc(%(date_trunc_1)s, donations_donation.created) AS day, sum(donations_donation.amount) AS
amount_raised
FROM donations_donation
WHERE donations_donation.created BETWEEN %(created_1)s AND %(created_2)s
GROUP BY date_trunc(%(date_trunc_1)s, donations_donation.created)) AS anon_2 ON anon_1.day = anon_2.day
2013-11-29 10:55:52,788 INFO sqlalchemy.engine.base.Engine {'created_1': datetime.datetime(2013, 9, 29, 10, 43, 30, 683023, tzinfo=tzutc()), 'created_2': datetime.datetime(2013, 11, 29, 10, 43, 37, 577980, tzinfo=tzutc()), 'date_trunc_1':
'day', 'param_1': 0, 'generate_series_3': datetime.timedelta(1), 'generate_series_2': datetime.datetime(2013, 11, 29, 10, 43, 37, 577980, tzinfo=tzutc()), 'generate_series_1': datetime.datetime(2013, 9, 29, 10, 43, 30, 683023, tzinfo=tzu
tc())}