python - 使用 SQLAlchemy Core 选择多行中的第一行

标签 python sqlalchemy

我正在尝试从 MSSQL 数据库中提取特定行。对于给定的 DistCodeRtrId 组合,我只想选择表中出现的第一行(包含最新日期)。该表有 5 列 - DistCode(带 7 位数条目)、RtrId(带 4 位数条目)、X(带字符串)、Class(带字符串)和 CreatedDate(带 yyyy-mm-dd) )。抱歉,我的格式很糟糕 - 第一次尝试这样做。

从下表中,我理想情况下只选择第 2 行,即因为它具有最新日期,并且也恰好是 CreatedDate 选项中的第一个。

DistCode    RtrId   X   Class   CreatedDate
1001885     5085    GT  BR      16-07-17

表格数据如下所示:

DistCode    RtrId   X   Class   CreatedDate
1001885     5085    GT  BR  2016-03-05
1001885     5085    GT  BR  2016-07-17
1001885     5085    GT  OT  2016-07-17
1001885     5085    GT  BR  2016-05-05

 

dr1=select([dr.c.DistCode, dr.c.RtrId, dr.c.X, dr.c.Class, func.max(dr.c.CreatedDate).label('latest_Date')]).group_by(dr.c.DistCode, dr.c.RtrId, dr.c.X , dr.c.Class).distinct()

在 SQLAlchemy Core 中使用 func.max,我能够过滤到第 2 行和第 3 行,但如何进一步仅恢复第 2 行。请仅使用 SqlAlchemy Core 提供输入。

最佳答案

我想到了一种可能不太有效的方法,首先将 sql 数据库转换为 pandas 数据帧,然后使用 groupby 和 first() 方法来过滤我的数据。

我只希望 SQL 中有一个 func.first() 第一个选项。

感谢所有帮助编辑我的问题以及尝试在 SQLAlchemy Core 中破解该问题的人。

关于python - 使用 SQLAlchemy Core 选择多行中的第一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54647173/

相关文章:

python - Pyramid/SQL Alchemy DetachedInstanceError

Python正则表达式正向展望

python - 根据条件在 numpy 数组的元素中进行数学运算的有效方法

python - 发送原始以太网数据包,其中数据字段的长度在类型字段中

python - sqlite3 和 sqlalchemy 有什么区别?

python - 由于查询调用的自动刷新导致的 SQLAlchemy OperationalError

python - 如何使用 c 代码或 python 检查 gnome key 环状态?

Python编码注释格式

python - SQLAlchemy:如何连接表并按 != 条件过滤?

python-3.x - python/sqlachemy/ibmdb2 - sqlAlchemy 插入 Db2 for i,AS400?