Il vous suffit d'écrire la première requête en tant que sous-requête (table dérivée), entre parenthèses, de choisir un alias pour celle-ci (t
ci-dessous) et alias les colonnes également.
Le DISTINCT
peut également être supprimé en toute sécurité en tant que GROUP BY
interne le rend redondant :
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 ;
Depuis le COUNT
est maintenant évident qu'il ne compte que les lignes de la table dérivée, vous pouvez le remplacer par COUNT(*)
et simplifier davantage la requête :
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 ;