Django queryset如何使用union在queryset上聚合(ArrayAgg)?

时间:2019-07-26 08:51:05

标签: django django-queryset union aggregate-functions

from django.contrib.postgres.aggregates import ArrayAgg

t1= Table1.objects.values('id')
t2= Table2.objects.values('id')
t3= Table3.objects.values('id')

t = t1.union(t2, t3)

t.aggregate(id1=ArrayAgg('id'))

这会引发错误

  

{ProgramingError}列“ __col1”不存在

等效的原始SQL

SELECT array_agg(a.id) from 
(
    SELECT id FROM table1
    UNION 
    SELECT id FROM table2
    UNION
    SELECT id FROM table3
) as a  

0 个答案:

没有答案