好的,我有以下问题:

SELECT MIN(`date`), `player_name`
FROM `player_playtime`
GROUP BY `player_name`

然后,我需要在以下查询中使用此结果:

SELECT DATE(`date`) , COUNT(DISTINCT  `player_name`)
FROM  `player_playtime /*Use previous query result here*/`
GROUP BY DATE( `date`) DESC LIMIT 60

我该怎么做呢?

推荐答案

您只需要将第一个查询作为子查询(派生表)写入括号中,为它 Select 一个别名(下面的t),并为列添加别名.

由于内部GROUP BY使其冗余,DISTINCT也可以安全拆除:

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 ;

由于COUNT现在很明显只对派生表的行进行计数,因此可以将其替换为COUNT(*),并进一步简化查询:

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 ;

Mysql相关问答推荐

配置MySQL服务器以管理数千个表

在MySQL CLI中,是否有自动完成过程的方法?

我在连接到 mysql 的 node js 中收到错误消息发送到客户端后无法设置标头

为两个中的每一个 Select 最大和最小传递条件

估计对大表进行分区所需的时间

try 在 .map 中使用 Favorite 选项卡进行react .我无法更改 mysql 表上的布尔类型

如何在更新语句中使用多个子字符串函数?

为什么这个 NOT NULL 到 NULL 迁移会触发大量 I/O 操作?

Golang Gorm:相同的查询构造不同,抛出不同的结果

查询以从约会表中获取可用空档

用数字和字母对 VARCHAR 列进行排序

使用case查询并更新最后一条记录

mysql 按日期 Select 总和组

让 MySQL 在 OSX 10.7 Lion 上运行

为什么数据库行元组中的整数具有L后缀?

在连接条件上使用 IS NULL 或 IS NOT NULL - 理论问题

如何在 python 中逐行获取 MySQL ResultSet

MySQL行格式:固定和动态之间的区别?

在mysql中复制没有数据的数据库 struct (带有空表)

MySQL ORDER BY rand(),名称为 ASC