保持一列對於表如此:同時選擇多個列不同,並在PostgreSQL的
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;
工作正常! 除了一個小問題 - 由於某種原因,列C現在被命名爲「max」。這是超級怪異的...我當然可以重命名它,但有沒有辦法來防止這種情況? 此外 - 如果我想保留多個列,而不僅僅是C,如果存在列D,E,F,我想保留以及該怎麼辦? – nittyjee 2014-11-23 04:46:20
我不認爲有一種方法來防止這種行爲。如果你不關心最後一個值,你可以使用'max'或'min'。如果你想保留特定的值,你可能需要更復雜的查詢。 – 2014-11-23 04:56:18
這很奇怪,它會重命名該列。 另外,如果我需要多列,則不能一次多次使用「max」和「min」,因爲您只能指定一次列名。 如果您有另一個可以添加多列並保留列名的選項,那麼您可以將它添加到您的答案嗎?這將是真棒:) 感謝您的幫助。 – nittyjee 2014-11-23 05:08:56