U hoeft alleen de eerste query te schrijven als een subquery (afgeleide tabel), tussen haakjes, een alias ervoor te kiezen (t
hieronder) en alias de kolommen ook.
De DISTINCT
kan ook veilig worden verwijderd als de interne GROUP BY
maakt het overbodig:
SELECT DATE(`date`) AS `date` , COUNT(`player_name`) AS `player_count`
FROM (
SELECT MIN(`date`) AS `date`, `player_name`
FROM `player_playtime`
GROUP BY `player_name`
) AS t
GROUP BY DATE( `date`) DESC LIMIT 60 ;
Sinds de COUNT
is nu duidelijk dat alleen rijen van de afgeleide tabel worden geteld, u kunt deze vervangen door COUNT(*)
en de zoekopdracht verder vereenvoudigen:
SELECT t.date , COUNT(*) AS player_count
FROM (
SELECT DATE(MIN(`date`)) AS date
FROM player_playtime
GROUP BY player_name
) AS t
GROUP BY t.date DESC LIMIT 60 ;