Sql-Server

從多個值中選擇最後一個日期

  • January 6, 2020

我有這張桌子:

在此處輸入圖像描述

我想做一個查詢,允許我顯示 分組中的最後一個值。它會是這樣的:fecha_gestion``NitSec

SELECT id_log, fecha_gestion, nitsec 
FROM table 
GROUP BY nitsec 
ORDER BY fecha_gestion DESC

我想要的結果是這樣的:

ID_log | fecha_gestion    | nitsec  
6      | 2020-01-03 09:52 | 5443
11     | 2020-01-03 10:12 | 1 
15     | 2020-01-03 10:23 | 3286

完成此操作後,我需要一個內部連接(但我可以輕鬆完成)。提前致謝。

一種可能的方法是使用以下方法對行進行適當編號ROW_NUMBER()

SELECT id_log, fecha_gestion, nitsec
FROM (
  SELECT 
     id_log, fecha_gestion, nitsec,
     ROW_NUMBER() OVER (PARTITION BY nitsec ORDER BY fecha_gestion DESC) AS rn
  FROM table 
) t
WHERE rn = 1

因為沒有給出樣本數據,所以下一個查詢未經測試:

SELECT
   ID_log,
   fecha_gestion,
   nitsec
FROM table t1
WHERE NOT EXISTS (SELECT 1 FROM table t2 WHERE t2.nitsec = t1.nitsec and t2.fecha_gestion < t1.fecha_gestion)

引用自:https://dba.stackexchange.com/questions/256703