2

这可能是一个非常简单的问题,但我不知道如何在 MS Access 中解决它。以前可能已经回答过,但我一直找不到。

我有一个包含 3 列的表:col1 是对象 ID,col2 和 col3 是测量值。我已经构建了一个查询,以便为每个对象我们在 col2 中获得相应的最小值。这适用于简单的分组查询。问题是当我尝试拉 col3(与找到最小值的行相关联)时,它将不再正确分组。

我一直在玩 group-by 子句并试图分成几个查询,但到目前为止还没有运气。

这是我拥有(左)和想要获得(右)的示例:

col1 col2 col3 ---> col1 minC2 col3
---- ---- ---- ---- ---- ----
1 0 1.8 1 0 1.8   
1 1 1.4 2 2 2.5
2 4 1.1 3 1 7.6
2 6 4.7
2 2 2.5
3 4 3.3
3 1 7.6

我希望这是有道理的。感谢任何帮助/MS Access SQL 语法...谢谢!

4

2 回答 2

3

假设你想要得到的第二行是 [2 2 2.5],这就是你要找的:

select a.col1, a.colm, m.col3
from
    (
        select col1, min(col2) as colm
        from test
        group by col1
    ) as a
inner join test m on a.col1 = m.col1 and a.colm = m.col2
于 2012-06-16T13:49:23.987 回答
0

您可以使用子查询:

select t.col1, tt.col2 , tt.col3
from (
      SELECT col1, Min(col2) AS mcol2
      FROM Tmp
      group by col1) t,  tmp tt
where t.col1 =  tt.col1 and t.mcol2 = tt.col2
于 2012-06-16T13:50:28.553 回答