我在mysql上失敗了,並且真的可以做一些幫助。我不知道它會被調用什麼,並且我所有使用DISTINCT和GROUP BY組合的嘗試都沒有解決。Mysql - 顯示來自每個唯一字段的1個最新條目
我有服務器監控數據與這些列的表:
nStatusNumber
Bandwidth
Load
Users
ServerNumber
DiskFree
MemFree
TimeStamp
**nStatusNumber** - A unique number increasing for each entry
**ServerNumber** - A unique number for each server
對於我的儀表板頂部對於這一點,我需要顯示最近的每個唯一的服務器報告。
//我們監控多少臺服務器?
$nNumServers = mysql_numrows(mysql_query("SELECT DISTINCT(ServerNumber) FROM server_status;"));
//獲取我們的服務器列表
$strQuery = "SELECT * FROM server_status ORDER BY nStatusNumber DESC limit ".$nNumServers.";";
然後遍歷結果,直到我們到了$ nNumServers。這個工作起初,直到服務器開始下降/上升和報告順序混亂。說20個服務器,最近的20個結果不一定是每個服務器1個。
我試圖找出這個匆忙,並在它失敗。我已經嘗試了各種各樣的DISTINCT和GROUP BY的組合,目前還沒有運氣,並且希望得到關於什麼可能是一個令人尷尬的簡單問題的指導,我只是無法看到答案。
謝謝!
PS - 下面是我一直在嘗試的示例查詢,顯示了我遇到的問題。檢查「nStatusNumber」字段,這些應該顯示僅針對每個服務器的最新結果 - http://pastebin.com/raw.php?i=ngXLRhd6
PPS - 設置max(nStatusNumber)不會給出準確的結果。我不想要一些平均/總和/中位數,我需要每個服務器報告的最新ACTUAL數據。你需要 http://pastebin.com/raw.php?i=eyuPD7vj
這麼快速的問題,這個位「起初,這些工作起作用,直到服務器開始下降/上升,報表順序混亂。說20個服務器,最近的20個結果不一定來自每個服務器。 ---你輪詢數據庫的服務器可用性,而不是輪詢服務器本身? –
我有一個cshjob ssh到每個服務器並收集數據並將該數據發佈到數據庫表。儀表板然後應該只顯示最近的結果(失敗),以及每個服務器都有可用的圖表和歷史數據(正常工作) –
可能重複[檢索每個組中的最後一條記錄](http:/ /stackoverflow.com/questions/1313120/retrieving-the-last-record-in-each-group) –