2016-11-29 78 views
0

我试图从我的表中选择记录。我的表包含了近20列和50多万records.For例如:通过子查询选择带主键组的查询

我的示例表中的数据:

enter image description here

所需的结果:

enter image description here

列C1是表的主键。我用下面的查询

SELECT (SELECT FIRST(C1) 
      FROM  TableName AS F 
      WHERE  F.C2 = TableName.C2 
     ) AS Exp1 , 
     TableName.C2 , 
     TableName.C3 , 
     TableName.C4 
FROM TableName 

它返回所需的结果,我预期,但它需要更多的时间才能返回结果。有什么方法来加快我的查询?提前致谢。

+0

样本数据和所需结果是相同的图像。 –

+0

@Ola Ekdahl在期望的结果中,列C1的结果在下一行中改变 – PRABA

回答

0

您可以将您之前查询的结果写回到Min(C1),并按C2,C3和C4分组到临时表中。

然后将您的主表加入C2,C3,C4的临时表中,并从临时表中选择Min(C1),并忽略主表中的C1。