我知道如何在sql查詢中使用MAX()
函數和GROUP BY
子句,但在我的情況下,我想要組的記錄有點不同。如何在sql查詢中獲取連續記錄條目的最大值?
,比如我有一個下表
HostName ModifyDate Sr No
-------------------------------------------
PC-1 2015-12-04 08:45:52.847 1
PC-1 2015-12-04 08:48:51.025 2
PC-2 2015-12-04 08:50:01.125 3
PC-2 2015-12-04 08:50:45.545 4
PC-2 2015-12-04 08:53:44.897 5
PC-1 2015-12-04 09:02:17.524 6
PC-2 2015-12-04 09:18:36.788 7
PC-2 2015-12-04 09:22:01.041 8
PC-1 2015-12-04 09:31:41.744 9
而結果應該是這樣的
HostName ModifyDate Sr No
------------------------------------------
PC-1 2015-12-04 08:48:51.025 2
PC-2 2015-12-04 08:53:44.897 5
PC-1 2015-12-04 09:02:17.524 6
PC-2 2015-12-04 09:22:01.041 8
PC-1 2015-12-04 09:31:41.744 9
上述結果表明,連續主機名記錄最高日紀錄。你可以看到有3個參賽作品(SrNo 3,4,5),但我只拿到了第三個,這三個都是最新的。在前兩個記錄中也使用了相同的場景(SrNo1,2),我只取得了這兩個記錄中的最新記錄。
問題是我不能採取最大日期記錄。如果我使用MAX(ModifyDate)
和HostName
組,那麼它將只返回兩個最新的記錄(Sr No 8和9)。我想獲得每個連續HostName
條目的最大記錄。
注意:我無法爲其創建存儲過程。我想通過單個sql語句獲取該記錄。表中沒有Sr No字段。我只是爲了理解這個案子而已。
這是一個經典的差距和是土地問題。你會發現很多解決方案。 – shawnt00