对于这样的表:
tblA  
A,B,C  
1,2,t3a  
1,3,d4g  
1,2,b5e  
1,3,s6u 
我想生成一个表,它同时在 A 和 B 上选择不同的值,并且仍然保留 C 的一个值,如下所示:
tblB  
A,B,C  
1,2,t3a  
1,3,d4g 
看起来这很简单,但我一生都找不到它。
DROP TABLE IF EXISTS tblA CASCADE;  
SELECT DISTINCT ON (A,B), C  
INTO tblB  
FROM tblA;  
当你使用时DISTINCT ON你应该有ORDER BY:
SELECT DISTINCT ON (A,B), C
INTO tblB
FROM tblA
ORDER BY A, B;
这应该可以解决问题
CREATE TABLE tblB AS (
    SELECT A, B, max(C) AS max_of_C FROM tblA GROUP BY A, B
)