MySQL数据库|查询count()并同时选择
我正在使用MySql workbench 5.7来运行这个 我正在尝试获取此查询的结果:MySQL数据库|查询count()并同时选择,mysql,Mysql,我正在使用MySql workbench 5.7来运行这个 我正在尝试获取此查询的结果: SELECT COUNT(Users) FROM UserList.custumers; SELECT Users FROM UserList.custumers; 此查询: SELECT COUNT(Users) FROM UserList.custumers; SELECT Users FROM UserList.custumers; 在同一个表中,这意味着我希望在一列中列出用户列表,在另一列中
SELECT COUNT(Users) FROM UserList.custumers;
SELECT Users FROM UserList.custumers;
此查询:
SELECT COUNT(Users) FROM UserList.custumers;
SELECT Users FROM UserList.custumers;
在同一个表中,这意味着我希望在一列中列出用户列表,在另一列中列出用户总数
当我尝试这一点时:
SELECT Users , COUNT(Users) FROM UserList.custumers;
我得到一个具有正确计数的单行,但只有列表中的第一个用户……您可以使用交叉联接,因为您知道计数查询将产生一行。。。您希望在每一行上重复其值
SELECt users, userCount
FROM userlist.custumers
CROSS JOIN (Select count(*) UserCount from userlist.custumers)
或者,您可以在“选择…”中运行计数。。。。我喜欢第一个,因为计数只需要做一次
SELECT users, (SELECT count(*) cnt FROM userlist.custumers) as userCount
FROM userlist.custumers
或者在支持窗口功能而不是mySQL的环境中,您可以将分区上的*按1计为userCount
之所以得到一行,是因为mySQL扩展了GROUP,当您使用不带GROUP BY子句的聚合时,GROUP BY将从非聚合列中选择一个值来显示。如果将group by添加到select,则不会获得所有用户的计数。因此,需要内联选择或交叉连接
考虑:-1记录并非所有用户
SELECT Users , COUNT(Users) FROM UserList.custumers;
vs-所有用户计数错误
SELECT Users , COUNT(Users) FROM UserList.custumers group by users;
我相信你在追求什么
SELECT Users, x.usercount FROM UserList.custumers
CROSS JOIN (Select count(*) UserCount from userlist.custumers) x
在SELECT中使用子查询
Select Users,
(SELECT COUNT(Users) FROM UserList.custumers) as total
FROM UserList.custumers;