sql >> Database >  >> RDS >> Mysql

MySQL Geneste Select Query?

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 ;



  1. JOIN en GROUP_CONCAT met drie tabellen

  2. SQL-query om een ​​tabel te maken in MySQL

  3. Opgeslagen procedure met optionele WHERE-parameters

  4. Kan ik ADFS 2.0 gebruiken om bepaalde gebruikers te verifiëren met SQL Server?