2

我有一个包含四列的表,并且希望仅基于一列显示不同的输出。我怎样才能做到这一点?

我尝试在 ID 上使用 Max 函数,但它仅适用于两列,超过两列的任何内容都会显示所有记录。

任何帮助深表感谢

- 编辑 -

样本数据:

ID Name Date    Status
1  Sam  1/1/11    A
2  Sam  2/22/12   A
3  Jill 1/5/10    R
4  Jim  7/2/12    I
5  Jim  5/6/11    I
6  Bob  11/11/12  A
7  Bob  7/26/10   A

输出:

ID Name Date    Status
1  Sam  1/1/11    A
3  Jill 1/5/10    R
4  Jim  7/2/12    I
6  Bob  11/11/12  A
4

3 回答 3

2

似乎您想要ID每个 值最低的行中的值Name。使用GROUP BY子查询来获取ID每个Name. 然后INNER JOIN你的表到子查询。

SELECT y2.ID, y2.Name, y2.Date, y2.Status
FROM
    YourTable AS y2
    INNER JOIN
        (
            SELECT y.Name, Min(y.ID) AS MinOfID
            FROM YourTable AS y
            GROUP BY y.Name
        ) AS sub
    ON y2.ID = sub.MinOfID
于 2013-04-12T16:45:01.923 回答
0

不确定您想从其他列返回什么,但这样的事情会返回 col1 中的唯一值,以及其他列的最小值。

SELECT 
    Col1,
    MIN(Col2) AS Col2,
    MIN(Col3) AS Col3,
    MIN(Col4) AS Col4
FROM MyTable
GROUP BY Col1
于 2013-04-12T16:17:27.730 回答
0

不确定这是否是您想要的,但请尝试:

从 yourTable 中选择 DISTINCT columnYouFilterBy、column2、column3、column4

于 2013-04-12T17:28:11.903 回答