在sql炼金术中按日期计算行数

时间:2016-05-29 19:05:57

标签: python sql sqlalchemy

我正在python中执行一些代码,但需要从我的数据库访问一些数据。这是我第一次使用sql alchemy

我的数据库中有一个名为reports.bigjoin的表,它包含以下类型的列

n(n+1)/2 <= 8

我需要知道给定日期集的行数。例如,在python中我想执行

id (varchar)
id2 (varchar)
ts_min (int4)
ts_local_min (int4)
10_meter_cell (int8)
ds (date)
ds_log (date)
ds_local (date)

到目前为止我的尝试一直是

x= select count(*) from reports.bigjoin where (ds>='2016-01-01' and ds<='2016-01-04')

这失败了。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

稍微搜索并应用

How to use variables in SQL statement in Python?

我找到了

connection = create_engine('url').connect()

result = connection.execute("select count(*) from  reports.bigjoin where (ds>= %s and ds<= %s)", (x,y))

解决了问题

答案 1 :(得分:0)

cnt = (
    session
    .query(func.count('*').label('cnt'))
    .filter(moz_bookmarks.c.ds >= '2016-01-01')
    .filter(moz_bookmarks.c.ds <= '2016-01-04')
)

print(cnt)