2016-09-16 130 views
0

我有一個具有半重複行的表(由於像素通過多次發送信息的錯誤)。我的目標是重複此表,然後根據該重複數據刪除創建視圖。從重複行的表創建視圖

表結構示例;

Col1 Col2 Col3 Col4 
    x  y  z  w 
    x  y  z  p 
    x  y  z  z 

所有的行都等於col4。我沒有能力修復重複/ alooma問題,所以我們需要一個只能爲每個重複返回1行的視圖。

+2

你會如何決定返回哪一個? –

回答

0

如果COL4是沒有意義的,你可以使用DISTINCT,只有選擇這樣的相關列:

SELECT DISTINCT col1, col2, col3 FROM your_table 

對於示例數據,這將返回X,Y,Z的一行。

如果你不關心COL4值,但由於某些原因要包含在列,這裏是一個非常簡單的方法,根據其他相關列只得到不同行:

SELECT DISTINCT ON (col1, col2, col3) * FROM your_table 

爲了您的示例數據,這將返回一行x,y,z,p。 「p」值是「隨機」選擇的。