MySQL查询计算数据库中发帖的唯一用户数

5
在一个数据库中,我们有大约1000个注册用户。我想知道其中有多少用户实际上写了问题或发表了答案。所有的信息都可以从tblQA表中获取,userid是“intPosterID”,问题和答案都有自己的ID,“PostID”。是否有一个查询可以运行来计算有多少独特的用户发布了问题或答案?
SELECT COUNT(DISTINCT intPosterID) FROM tblQA WHERE PostID IS NOT NULL
4个回答

5

可以通过以下方式计算不同的用户ID:

SELECT COUNT( DISTINCT intPosterID ) FROM tblQA;

COUNT( DISTINCT field ) 返回给定字段 - 在这种情况下是intPosterID - 不同值的行数。


出现资源ID#11错误。$unique = mysql_query(“SELECT COUNT(DISTINCT intPosterID)FROM tblQA)”; - BigMike
运行查询是否会给你错误?还是你想要回显$unique?如果是后者,那么它不会起作用,因为它是一个Mysql资源,而不是结果。尝试使用$res = mysql_query('QUERY_HERE'); $unique = mysql_fetch_row($res); print_r($unique);。 - ConroyP

1

统计每个用户的帖子数:

SELECT COUNT(PostID), intPosterID FROM tblQA GROUP BY intPosterId

结果数量 = 用户数量或运行ConroyP查询


1

COUNT(DISTINCT columnname) 可以用于此目的:

SELECT COUNT(DISTINCT intPosterId) FROM tblQA; 

0

这应该可以解决问题。

select count(intPosterID)
from tblQA
group by intPosterID;

这将返回列中非空值的数量,而不一定是不同值的数量。 - Peter Tillemans

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接