私はこのようなテーブルを持っています:
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_idの配列を見つけたいと思います。この場合、結果のテーブルが必要です。
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の集計関数と配列に関するオンラインドキュメントはごくわずかです。どんな助けでも大歓迎です。