Select
選擇每個都有最大值的唯一欄位?
我有一張包含數據名稱、數字和時間戳的表格。我想知道如何根據時間戳的最新程度選擇每個名稱的唯一實例。
Addy(文本)、NW(數字)、UDate(時間戳)、Stance(文本)。
我只想拉出 Addy 的一個實例,並且我希望拉出的那個擁有最新的 UDate 值。我想把它做成一個單獨的表格,這樣我就有了歷史資訊的原始表格和一個更有用的表格,其中包含最新的英特爾。
我正在使用 Microsoft Access 2013。
這種類型的查詢有時被稱為“每組最大 n 個”(在 StackOverflow 和 DBA.SE 中甚至有一個標籤)。在這個問題中,您希望每組一行。
一種常見的解決方案是使用視窗函式(但這些在 Access 中不可用),另一種是
GROUP BY
在派生表中使用,然後連接回原始表。像這樣:SELECT t.* FROM TableName AS t INNER JOIN ( SELECT Addy, MAX(UDate) AS UDate FROM TableName GROUP BY Addy ) AS grp ON grp.Addy = t.Addy AND grp.UDate = t.UDate ;