2013-02-04 25 views
0

我有一個表completion_log,它有team_id,levelcompletion_time。當每個團隊完成一個級別時,將會插入一條帶有相應級別和時間值的記錄。從數據創建排行榜的最佳SQL查詢是什麼 - 按照最高level值的降序列出團隊,如果最高級別相同,則按completion_time按升序排序?從級別完成表創建排行榜

我想是這樣的:

SELECT team_id, max(level) FROM completion_log GROUP BY team_id ORDER BY max(level) 

雖然這幾乎做工作,這種不通過completion_time當每個隊max(level)的值是相同的。怎麼做?

回答

0
SELECT team_id, max(level), completion_time FROM completion_log GROUP BY team_id ORDER BY max(level), completion_time 

您可以訂購不止一個字段。

+0

我在PostgreSQL中得到這個錯誤'錯誤:列「completion_log.completion_time」必須出現在GROUP BY子句中或用於聚合函數中# – Guruprasad

+0

@guru:嗯。沒有注意。如果你想按時間排序,你需要添加時間到分組子句,但是這會導致它每次都添加一行... – Satanicpuppy