Tôi không giỏi lắm với SQL (PostgreSQL). Đây là những gì tôi muốn làm:
Tôi có một bảng, các lĩnh vực:
id SERIAL
inet INET
ports integer[]
id | inet | ports
----+------------+------------
2 | 1.2.2.1 | {80}
1 | 1.2.3.4 | {80,12}
...
Làm thế nào tôi có thể
- nhận tất cả các giá trị "cổng" đã sử dụng trong bảng này: 80, 12
- đếm có bao nhiêu địa chỉ inet trên cổng cụ thể:
Như thế này:
port | count
--------+------------
12 | 1
80 | 2
...
Nếu bất cứ ai đang tìm kiếm một phiên bản Django của nó:
class Unnest(Func):
function = 'UNNEST'
Model.objects \
.annotate(port=Unnest('ports', distinct=True)) \
.values('port') \
.annotate(count=Count('port')) \
.order_by('-count', '-port')