计算 sql-alchemy 中的唯一行数
count unique rows in sql-alchemy
我是 sql alchemy 的新手,我想计算 table 中的唯一行数并输出唯一行以及该行的副本数。
假设我有一个像这样的 table
Table A
--------------
id
address
现在我想获取此 table 的所有行,但对于具有相同地址的行,我只想获取一行(与哪个 ID 无关)。我还想知道特定地址有多少个 ID。
因此,如果有两个人住在同一地址 "main street"(比如说 id=4 和 id =12),我想得到这样的输出 ("main street", 2),
这是我的开始尝试
query = models.A.query
query = query.add_columns(func.count(models.A.address)).all()
然而,这给出了 table 中的总行数。所以我猜 func.count 是错误的功能?
提前致谢
卡尔
count
是正确的函数,但您需要指定 组 您想要计算的内容。下面应该这样做:
q = (session.query(A.address, func.count(A.id).label("# people"))
.group_by(A.address)
).all()
我是 sql alchemy 的新手,我想计算 table 中的唯一行数并输出唯一行以及该行的副本数。 假设我有一个像这样的 table
Table A
--------------
id
address
现在我想获取此 table 的所有行,但对于具有相同地址的行,我只想获取一行(与哪个 ID 无关)。我还想知道特定地址有多少个 ID。 因此,如果有两个人住在同一地址 "main street"(比如说 id=4 和 id =12),我想得到这样的输出 ("main street", 2),
这是我的开始尝试
query = models.A.query
query = query.add_columns(func.count(models.A.address)).all()
然而,这给出了 table 中的总行数。所以我猜 func.count 是错误的功能? 提前致谢 卡尔
count
是正确的函数,但您需要指定 组 您想要计算的内容。下面应该这样做:
q = (session.query(A.address, func.count(A.id).label("# people"))
.group_by(A.address)
).all()