sql >> Databasteknik >  >> RDS >> Mysql

MySQL Nested Select Query?

Du behöver bara skriva den första frågan som en underfråga (härledd tabell), inom parentes, välj ett alias för den (t nedan) och även alias kolumnerna.

DISTINCT kan också säkert tas bort som den interna GROUP BY gör det överflödigt:

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 ;

Sedan COUNT är nu uppenbart att bara räknar rader i den härledda tabellen, du kan ersätta den med COUNT(*) och förenkla frågan ytterligare:

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. Hur använder man dynamiska kolumnnamn i en UPDATE- eller SELECT-sats i en funktion?

  2. SQL Server-stödda versioner Matrix

  3. Ansluter RStudio till SQL Server

  4. En guide till MySQL Galera Cluster Streaming Replication:Del två