首页 > 解决方案 > SQLAlchemy 添加计算列

问题描述

使用 SQLAlchemy ORM 我想添加一个计算列,然后按该列排序。计算的列是其他两列的最大值(我试图找到 2 个联系人之间的最新交互,他们可以通过“电子邮件”或“笔记”进行交互)。

我构建了一个 case when 语句正确返回最近的交互:

calculatedLastInteraction = case([
            (
                (organization_note.time == None) & (contact.last_interaction_time_email != None),
                contact.last_interaction_time_email
            ),
            (
                (contact.last_interaction_time_email == None) & (organization_note.time != None),
                organization_note.time
            ),
            (
                contact.last_interaction_time_email >= organization_note.time, 
                contact.last_interaction_time_email
            ),
            (
                organization_note.time > contact.last_interaction_time_email,
                organization_note.time
            )
        ],
        else_ = None).label('calculatedLastInteractionDate')

如何将此列添加到现有的 SQLAlchemy 查询?

标签: sqlalchemy

解决方案


推荐阅读