MySQL查询数据库中所有标本总数的技术咨询
统计所有标本总数的正确SQL语句
要得到所有用户的标本总数量(也就是5),直接用COUNT(*)统计表中所有行数即可,因为每一行对应一个标本:
SELECT COUNT(*) AS total_specimens FROM Table1;
你的原语句问题在哪?
你之前写的Select count(distinct userId) from Table1 group by userId存在两个问题:
- 加了
GROUP BY userId,结果会按用户分组返回每个用户的单独数据,而非整体总数; COUNT(DISTINCT userId)是统计每个分组内不同用户ID的数量,但你已经按userId分组,每个分组里只有同一个用户ID,所以返回的结果都是1,根本不是标本数量。
如果既要查看每个用户的标本数,又要统计总数量,可以用以下语句:
-- 查询每个用户的标本数 SELECT userId, COUNT(*) AS user_specimens FROM Table1 GROUP BY userId; -- 基于用户标本数统计总数量 SELECT SUM(user_specimens) AS total_specimens FROM ( SELECT COUNT(*) AS user_specimens FROM Table1 GROUP BY userId ) AS user_counts;
内容的提问来源于stack exchange,提问作者Parveez Ahmed
相关产品推荐
相关产品推荐

