Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Wie wählt man nur die ersten Zeilen für jeden eindeutigen Wert einer Spalte aus?

Eine sehr einfache Antwort, wenn Sie sagen, dass es Ihnen egal ist, welche Adresse verwendet wird.

SELECT
    CName, MIN(AddressLine)
FROM
    MyTable
GROUP BY
    CName

Wenn Sie die erste nach, sagen wir, einer "eingefügten" Spalte wollen, dann ist es eine andere Abfrage

SELECT
    M.CName, M.AddressLine,
FROM
    (
    SELECT
        CName, MIN(Inserted) AS First
    FROM
        MyTable
    GROUP BY
        CName
    ) foo
    JOIN
    MyTable M ON foo.CName = M.CName AND foo.First = M.Inserted