我有一张这样的桌子:
SELECT * FROM orders;
client_id | order_id | salesman_id | price
-----------+----------+-------------+-------
1 | 167 | 1 | 65
1 | 367 | 1 | 27
2 | 401 | 1 | 29
2 | 490 | 2 | 48
3 | 199 | 1 | 68
3 | 336 | 2 | 22
3 | 443 | 1 | 84
3 | 460 | 2 | 92
我想为每个独特的推销员和客户对的每个最高价格的销售找到一个 order_ids 数组。在这种情况下,我想要结果表:
salesman_id | order_id
-------------+----------------
1 | {167, 401, 443}
2 | {490, 460}
到目前为止,我有一个查询大纲:
SELECT salesman_id, max_client_salesman(order_id)
FROM orders
GROUP BY salesman_id;
但是我在编写聚合函数max_client_salesman 时遇到了麻烦。
postgres 中聚合函数和数组的在线文档非常少。任何帮助表示赞赏。