Tổng hợp tùy chỉnh
Phương pháp 1:xác định tổng hợp tùy chỉnh. Đây là một trong những tôi đã viết trước đó.
CREATE TABLE my_test(title text, tags text[]);
INSERT INTO my_test(title, tags) VALUES
('ridealong', '{comedy,other}'),
('ridealong', '{comedy,tragedy}'),
('freddyjason', '{horror,silliness}');
CREATE AGGREGATE array_cat_agg(anyarray) (
SFUNC=array_cat,
STYPE=anyarray
);
select title, array_cat_agg(tags) from my_test group by title;
Truy vấn LATERAL
... hoặc vì bạn không muốn duy trì đơn hàng và muốn loại bỏ trùng lặp, bạn có thể sử dụng LATERAL
truy vấn như:
SELECT title, array_agg(DISTINCT tag ORDER BY tag)
FROM my_test, unnest(tags) tag
GROUP BY title;
trong trường hợp đó, bạn không cần tổng hợp tùy chỉnh. Cái này có lẽ chậm hơn một chút đối với các tập dữ liệu lớn do việc khử trùng lặp. Xóa ORDER BY
Tuy nhiên, nếu không được yêu cầu có thể hữu ích.