Mysql 要计数的特定SQL查询

Mysql 要计数的特定SQL查询,mysql,sql,Mysql,Sql,我正在开发一个CRM,这就是为什么我创建了极点来分离我的用户 我创建了一个视图,它收集了用户的所有信息 我想知道如何计算pole登录的用户数 在我看来,我有一个user\u online字段 我还有一个pole\u name字段 我试过这个请求,但不起作用 SELECT pole_name, COUNT(user_online) AS nbr_online FROM `ViewProjet_userPoleRole` GROUP BY pole_name 这给了我一个极点的总用户数,因此如果它

我正在开发一个CRM,这就是为什么我创建了极点来分离我的用户

我创建了一个视图,它收集了用户的所有信息

我想知道如何计算pole登录的用户数

在我看来,我有一个
user\u online
字段

我还有一个
pole\u name
字段

我试过这个请求,但不起作用

SELECT pole_name, COUNT(user_online) AS nbr_online FROM `ViewProjet_userPoleRole` GROUP BY pole_name
这给了我一个极点的总用户数,因此如果它在线的话就不会了

最后,这是我的全部观点


我尝试了几个请求,但我不能。

我认为您可以使用条件聚合,如下所示:

或者,如果您只想知道至少有一个在线用户的电杆,请在
WHERE
子句中输入以下条件:

如果您通过某种其他类型的规范表示在线用户,则在
CASE
语句的
WHEN
子句中相应地使用它们

干杯

试试这个:

SELECT pole_name, COUNT(user_id) AS nbr_online 
FROM `ViewProjet_userPoleRole` 
WHERE user_online = 1
GROUP BY pole_name
希望这会有所帮助

或者,如果要同时显示联机和脱机计数,可以尝试以下操作:

SELECT pole_name, SUM(if(user_online = 1,1,0)) as nbr_online, SUM(if(user_online = 0,1,0)) as nbr_offline 
FROM `ViewProjet_userPoleRole` 
GROUP BY pole_name

试试这个。

也许你可以分享两个表的基本定义。还有,你的提问结果如何?我刚刚编辑了我的问题。谢谢你的回复。你的请求让我回到了极点,但不是在线用户的数量。我的印象是相反的,它显示了离线用户的数量。不同意!!!它正在计算记录的数量,其中
USER\u ONLINE='Y'
Y是什么意思?我认为我们的要求是正确的。请阅读我的回答:如果你用其他规范代表在线用户,那么在案例陈述的WHEN子句中相应地使用它们。我没有看到,谢谢你澄清我,我会记住这一课!谢谢你的回复。您的请求有效,但仅返回连接用户的极点。我需要在所有用户都已注销的情况下显示poles。选择pole_name,SUM(如果(user_online=1,1,0))作为nbr_online,SUM(如果(user_online=0,1,0))作为nbr_offline,从
ViewProjet_userPoleRole
按pole_name分组非常感谢您的帮助,它也是这样工作的。我的代码对您很有帮助,那么请帮我的忙,投票表决我的答案和更多。我刚刚做了,再次感谢。
SELECT pole_name, COUNT(user_id) AS nbr_online 
FROM `ViewProjet_userPoleRole` 
WHERE user_online = 1
GROUP BY pole_name
SELECT pole_name, SUM(if(user_online = 1,1,0)) as nbr_online, SUM(if(user_online = 0,1,0)) as nbr_offline 
FROM `ViewProjet_userPoleRole` 
GROUP BY pole_name