MySQL groupby&WHERE子句
我有一个MySQL表,其中存储了一些关于服务器id的信息 我有以下疑问:MySQL groupby&WHERE子句,mysql,Mysql,我有一个MySQL表,其中存储了一些关于服务器id的信息 我有以下疑问: SELECT server_id,COUNT(*) as online_clients FROM `user_activity` WHERE ISNULL(`date_end`) GROUP BY `server_id`; 我希望从中返回所有行的唯一服务器id和每个行的联机客户端 但是,如果我删除WHERE子句**,我将获得所有服务器ID**和每个服务器的联机客户端 为什么WHERE子句不起作用?在本例中,我是否应该
SELECT server_id,COUNT(*) as online_clients
FROM `user_activity`
WHERE ISNULL(`date_end`)
GROUP BY `server_id`;
我希望从中返回所有行的唯一服务器id和每个行的联机客户端
但是,如果我删除WHERE子句**,我将获得所有服务器ID**和每个服务器的联机客户端
为什么WHERE子句不起作用?在本例中,我是否应该使用在线客户端(即0)再次获取所有服务器\u ID?因为date_end中没有空值
谢谢你问:为什么WHERE子句不起作用?在本例中,我是否应该使用在线客户端(即0)再次获取所有服务器\u ID
答:WHERE子句中的谓词将过滤掉行,如果date\U end列中没有空值的行,查询将不会返回任何行。我们不希望返回任何行
如果我们希望从表中返回服务器\u id的不同列表,以及联机\u客户端的计数,我们可以使用如下查询:
SELECT a.server_id
, SUM(ISNULL(a.date_end)) AS online_clients
FROM `user_activity` a
GROUP BY a.server_id
可能您可以通过删除where子句来尝试将date end为NULL的group by server_id设置为NULL,因为where子句不起作用。它说date_end是未知列,让子句将其作为select语句的一部分,即date_endyes我尝试过。已执行查询,但再次返回0行。。。发生了什么…您能在问题中添加一些数据和表格以及预期的输出吗?看起来日期数据保存为0000-00-00,这不是空的谢谢老板。哦,伙计,你是对的。我觉得自己好笨,谢谢你