Bạn chỉ cần viết truy vấn đầu tiên dưới dạng truy vấn con (bảng dẫn xuất), bên trong dấu ngoặc đơn, chọn bí danh cho nó (t
bên dưới) và cả bí danh cho các cột.
DISTINCT
cũng có thể được xóa một cách an toàn dưới dạng GROUP BY
nội bộ làm cho nó trở nên thừa:
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 ;
Kể từ COUNT
hiển nhiên là chỉ đếm các hàng của bảng dẫn xuất, bạn có thể thay thế nó bằng COUNT(*)
và đơn giản hóa hơn nữa truy vấn:
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 ;