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