2016-09-16 191 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”值是“随机”选择的。