gpt4 book ai didi

python - SQLAlchemy group_concat 有序值

转载 作者:行者123 更新时间:2023-11-29 06:52:06 35 4
gpt4 key购买 nike

我想在 SQLAlchemy 中模拟 collect_set 的行为(使用 MySQL 连接器)。即 A 组 1,2,32,1,3 相同。我有以下代码:

res = db.session \
.query(T1.col1.label('col1'), func.group_concat(T1.col2.distinct()).label('col2_group')) \
.group_by(T1.col1) \
.all()

但是,默认情况下 SQLAlchemy 不会对组中的值进行排序,因此可能会出现重复。

有什么方法可以模拟collect_set行为吗?

最佳答案

不幸的是SQLAlchemy有官方aggregate ORDER BY support for Postgresql only 。您仍然可以使用 generic op() 以其他方言表达它运算符函数,虽然有点老套:

func.group_concat(T1.col2.distinct().op("ORDER BY")(T1.col2))

它会编译成类似的东西

group_concat(DISTINCT t1.col2 ORDER BY t1.col2)

关于python - SQLAlchemy group_concat 有序值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47052349/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com