0
我有一個表,它看起來像下面獲得前5個記錄每一個「組」的
pid server time day
89663 185.x.x.55:27015 463 2015-01-20
89684 185.x.x.55:27015 29 2015-01-20
61102 185.x.x.55:27015 309 2015-01-20
5748 185.x.x.55:27015 684 2015-01-20
317 79.x.x.40:27018 2410 2015-01-20
54499 79.x.x.40:27018 12921 2015-01-20
27176 80.x.x.12:27019 6711 2015-01-20
81564 80.x.x.12:27019 1095 2015-01-20
25628 185.x.x.55:27015 161 2015-01-20
PID是玩家ID,時間以秒爲單位
我想打一個查詢,顯示瞭如何每臺服務器的前5名玩家花費很多時間。我寫了一個查詢這樣做:
SELECT `name`, `time`
FROM (
SELECT `pid`, SUM(`time`) AS `time`
FROM `stats_general`
WHERE `server` = '{$ip}'
AND `day` LIKE CONCAT(DATE_FORMAT(NOW(),'%Y-%m-'),'%')
GROUP BY `pid`
ORDER BY `time` DESC
LIMIT 0,5
) AS g
JOIN `stats_players` AS p ON g.pid = p.id
不幸的是,這個查詢有一個壞的一面。它僅顯示了一臺服務器的前5名。我想查詢顯示每臺服務器的前5(我不想使用UNION,它會導致腳本執行很長時間。)
總結。我想要一個查詢,顯示前5(時間花在服務器上每個服務器的當前月)