如何向Django ORM查询中添加带有未嵌套数组的JOIN和GROUP BY?

2024-03-28 09:59:05 发布

您现在位置:Python中文网/ 问答频道 /正文

在现有系统中,我经常使用Django values()后跟annotate()模式来实现SQL GROUP BY。你知道吗

但是,对于一个新特性,我需要用一个附加数组连接整个查询,并且需要GROUP BY该附加数组的元素。在PostgreSQL中,它看起来像这样(大大简化了):

SELECT COUNT(ID) FROM some_table
INNER JOIN ...
INNER JOIN (SELECT unnest(ARRAY['A', 'B', 'C']) AS name) tag ON some_table.t LIKE tag.name || '%'
GROUP BY (some_table.some_column, tag.name);

我想留在ormland中,因为查询经历了一系列后续的转换,我希望保持一致。你知道吗

有没有一种方法可以1)连接运行时定义的(每个查询都不同)数组,2)将其添加到现有的GROUP BY序列中?你知道吗


Tags: djangonameby系统tagtable模式group