Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Zagnieżdżone zapytanie wybierające MySQL?

Wystarczy napisać pierwsze zapytanie jako podzapytanie (tabela pochodna), w nawiasach, wybrać dla niego alias (t poniżej) i aliasuj kolumny.

DISTINCT można również bezpiecznie usunąć jako wewnętrzną GROUP BY sprawia, że ​​jest zbędny:

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 ;

Od COUNT jest teraz oczywiste, że liczy się tylko wiersze z tabeli pochodnej, możesz ją zastąpić COUNT(*) i jeszcze bardziej uprość zapytanie:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak tworzyć i usuwać bazy danych i tabele w MySQL

  2. Problem z lokalnym hostem MySQL / 127.0.0.1

  3. Czy mogę używać COUNT() i DISTINCT razem?

  4. Podczas uruchamiania funkcji EXPLAIN, jeśli wartość pola dla klucza nie jest równa null, ale dodatek jest pusta, czy używany jest klucz?

  5. PHP:wywoływanie procedury składowanej MySQL z parametrami INPUT i OUTPUT (NOT INOUT)