在子查询中选择带主键组的查询

时间:2016-11-29 04:30:57

标签: sql ms-access

我正在尝试从我的表中选择记录。我的表包含近20列和超过500 000条记录。例如:

我的样本表数据:

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

它返回我期望的Desired结果,但返回结果需要更多时间。有什么方法可以加快我的查询速度吗?在此先感谢。

1 个答案:

答案 0 :(得分:0)

您可以从上一个查询中写入结果 - 返回Min(C1)并按C2,C3和C4分组 - 到临时表。

然后将主表连接到C2,C3,C4上的临时表,并从临时表中选择Min(C1)并忽略主表中的C1。