查找具有唯一列的所有行,仅查找最新的行

hel*_*ght 2 sql t-sql sql-server

编辑:Date当然,购买包含一个名为的列.我的错.

我有一个表,Purchases有列CustomerId,PhoneNumberPurchase,PriceDate.

我想将有关客户的信息移到新表中Customers.那包含CustomerIdPhoneNumber.

具有相同的行CustomerId可以多次出现Purchases,我只想要每个行的最新行CustomerId,因为它将包含该PhoneNumber客户的最新行.

我读了一些关于DISTINCT但是从我所理解的用于查找唯一行的内容(对吧?).

我已经尝试了一些内部连接的东西,但由于我是初学者,我不觉得如果我发布它会有很大贡献:)

Shn*_*ugo 5

尝试这样的事情:

;WITH MyCustomerRows As
(
    SELECT ROW_NUMBER() OVER(PARTITION BY CustomerID ORDER BY [Date] DESC) AS CustomerIndex
          ,CustomerID
          ,PhoneNumber
    FROM Purchases
)
INSERT INTO NewCustomerTable(CustomerID,PhoneNumber)
SELECT CustomerID,PhoneNumber
FROM MyCustomerRows 
WHERE CustomerIndex =1 --this will pick just the first row, which is the newest...
Run Code Online (Sandbox Code Playgroud)