简体   繁体   English

如何在SQLAlchemy中编写此SQL查询?

[英]How can I write this SQL query in SQLAlchemy?

I wrote the following SQL query. 我编写了以下SQL查询。 How can I do the same thing in SQLAlchemy? 如何在SQLAlchemy中做同样的事情?

SELECT
    T.campaign_id,
    T.spend,
    T.id
FROM activity_log T
WHERE T.end_time = (
    SELECT MAX( T1.end_time ) FROM activity_log T1
    WHERE T1.campaign_id = T.campaign_id and cast(T1.end_time as DATE) = cast(T.end_time as DATE)
);

Below should get you started: 下面应该可以帮助您入门:

T = aliased(ActivityLog, name="T")
T1 = aliased(ActivityLog, name="T1")
subquery = (
    session.query(func.max(T1.end_time).label("end_time"))
    .filter(T1.campaign_id == T.campaign_id)
    .filter(cast(T1.end_time, Date) == cast(T.end_time, Date))
    .correlate(T)
    .as_scalar()
)

qry = (
    session.query(T.campaign_id, T.spend, T.id)
    .filter(T.end_time == subquery)
)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM