SQLAlchemy/SQL,如何根据组中的另一列获取一列中的值

问题描述 投票:0回答:1

我在 sqlite 数据库中有这个简单的表:

unit    groupid value
enhed1  24270   2
enhed2  24272   2
enhed3  24120   1
enhed4  24191   4
enhed4  24192   2

对于每个单元,我想提取groupid(组内)最低的值。

unit    value
enhed1  2
enhed2  2
enhed3  1
enhed4  4

我尝试过的:

select(
    [
        table.c.unit,
        table.c.value
    ]
)
.where(
    table.c.groupid == select(func.min(table.c.groupid  )).group_by(table.c.unit).scalar_subquery()
)
.group_by(table.c.unit)

但是它不起作用,只是为所有单位输出相同的值。

sql sqlite group-by sqlalchemy
1个回答
0
投票

您不需要任何过滤,只需 group_by 和 order:

select(
    [
        table.c.unit,
        table.c.value
    ]
) \
.group_by(table.c.unit) \
.order_by(table.c.unit)
© www.soinside.com 2019 - 2024. All rights reserved.