這可能是一個多餘的問題,但我已經嘗試從其他相關主題的以前的答案,但還是無法弄明白。Django的GROUP BY ID,然後選擇最大時間戳
我有一個表Board_status看起來是這樣的(多個狀態和時間戳,每塊板):
time | board_id | status
-------------------------------
2012-4-5 | 1 | good
2013-6-6 | 1 | not good
2013-6-7 | 1 | alright
2012-6-8 | 2 | good
2012-6-4 | 3 | good
2012-6-10 | 2 | good
現在我想選擇Board_status表中的所有記錄,組所有的人都通過board_id爲不同board_id,然後選擇每塊電路板上的最新狀態。基本上結束了,像這樣(只最新狀態和時間戳,每塊板)表:
time | board_id | status
------------------------------
2013-6-7 | 1 | alright
2012-6-4 | 3 | good
2012-6-10 | 2 | good
我曾嘗試:
b = Board_status.objects.values('board_id').annotate(max=Max('time')).values_list('board_id','max','status')
,但似乎並不像它的工作。每個board_id仍然給我超過1條記錄。
我應該在Django中使用哪個命令來執行此操作?
我認爲你是對的。我一直試圖在原始SQL中執行它,但也無法在1個查詢中獲得它。我正在考慮將所有board_id讀入數組,然後從該數組到數據庫執行for循環以獲取最新記錄。如果我的桌子變大了,會很麻煩... – Linh