我如何将其转换为 peewee
How do I convert this into peewee
我有这个 SQLquery,我目前正在像这样在 peewee 中执行它
sql = "select DATE(inserted) Date, COUNT(*) totalCount FROM tbl_rss_region GROUP BY DATE(inserted)"
db.execute_sql(sql)
是否可以将其记为 db.select(DATE(tbl_rss_region.inserted)...) 语句?
我试过了,但它没有按日期分组,也没有考虑时间,所以我得到了错误的值:
for l in TBL_RSS_REGION.select(TBL_RSS_REGION.inserted, fn.COUNT(TBL_RSS_REGION.id).alias("count")).group_by(TBL_RSS_REGION.inserted):
print l.inserted, l.count
2015-08-31 09:31:33.530000 1
2015-08-31 09:31:33.538000 1
2015-08-31 09:31:33.549000 1
2015-08-31 09:31:33.561000 1
2015-08-31 09:31:33.569000 1
解决方案是截断。
TBL_RSS_REGION.select(db.truncate_date("day", TBL_RSS_REGION.inserted), fn.COUNT(TBL_RSS_REGION.id).alias("count")).group_by(
db.truncate_date("day", TBL_RSS_REGION.inserted))
另一种选择是写:
TRS = TBL_RSS_REGION # ew all caps, wtf bro
query = (TRS
.select(
fn.DATE(TRS.inserted).alias('day'),
fn.COUNT(TRS.id).alias('count'))
.group_by(fn.DATE(TRS.inserted)))
您使用了 fn.COUNT
,也许您不知道它可以与任意 SQL 函数一起使用?
我有这个 SQLquery,我目前正在像这样在 peewee 中执行它
sql = "select DATE(inserted) Date, COUNT(*) totalCount FROM tbl_rss_region GROUP BY DATE(inserted)"
db.execute_sql(sql)
是否可以将其记为 db.select(DATE(tbl_rss_region.inserted)...) 语句?
我试过了,但它没有按日期分组,也没有考虑时间,所以我得到了错误的值:
for l in TBL_RSS_REGION.select(TBL_RSS_REGION.inserted, fn.COUNT(TBL_RSS_REGION.id).alias("count")).group_by(TBL_RSS_REGION.inserted):
print l.inserted, l.count
2015-08-31 09:31:33.530000 1
2015-08-31 09:31:33.538000 1
2015-08-31 09:31:33.549000 1
2015-08-31 09:31:33.561000 1
2015-08-31 09:31:33.569000 1
解决方案是截断。
TBL_RSS_REGION.select(db.truncate_date("day", TBL_RSS_REGION.inserted), fn.COUNT(TBL_RSS_REGION.id).alias("count")).group_by(
db.truncate_date("day", TBL_RSS_REGION.inserted))
另一种选择是写:
TRS = TBL_RSS_REGION # ew all caps, wtf bro
query = (TRS
.select(
fn.DATE(TRS.inserted).alias('day'),
fn.COUNT(TRS.id).alias('count'))
.group_by(fn.DATE(TRS.inserted)))
您使用了 fn.COUNT
,也许您不知道它可以与任意 SQL 函数一起使用?