如何将一个带有unnested数组的JOIN和GROUP BY添加到Django ORM查询中?

时间:2016-09-07 13:24:55

标签: python sql django postgresql group-by

在现有系统中,我经常使用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);

我想留在ORM-land,因为查询经历了一系列后续转换,我希望保持一致。

有没有办法可以1)加入运行时定义的(每个查询不同)数组,2)将它添加到现有的GROUP BY序列中?

0 个答案:

没有答案