我对SQL(PostgreSQL)不太满意。这是我想做的:
我有一张桌子,字段:
id SERIAL
inet INET
ports integer[]
id | inet | ports
----+------------+------------
2 | 1.2.2.1 | {80}
1 | 1.2.3.4 | {80,12}
...
我怎么能够
- 获取此表中所有使用的“端口”值:80、12
- 计算特定端口上有多少个Inet地址:
像这样:
port | count
--------+------------
12 | 1
80 | 2
...
如果有人在寻找它的Django版本:
class Unnest(Func):
function = 'UNNEST'
Model.objects \
.annotate(port=Unnest('ports', distinct=True)) \
.values('port') \
.annotate(count=Count('port')) \
.order_by('-count', '-port')