[英]Select COUNT of column and GROUP BY
这是我无法解决的问题。
我的问题是:
我需要选择一列的计数,但是我还需要在同一列上使用GROUP BY。 到目前为止,我所尝试的并没有返回我所期望的。
这是我尝试过的:
'SELECT COUNT(user_id) AS total_donors
FROM ' . DONATION_SECURITY_TABLE .
" WHERE payment_status = 'Completed'
GROUP BY user_id"
这是我的表格的样子:
id user_id payment_status
1 20 Completed
2 33 Completed
3 44 Completed
4 20 Pending
5 33 Pending
6 44 Completed
7 20 Completed
如您所见,单个user_id可以不止是Pending或Completed,但是我希望我的查询返回3 (基于上面的表格示例)。
因此,如果付款状态已完成,我希望查询到COUNT GROUPED user_ids。
有想法吗?
您可以使用DISTINCT
关键字来选择唯一的用户ID,如下所示
"SELECT COUNT(DISTINCT user_id) AS total_donors
FROM " . DONATION_SECURITY_TABLE .
" WHERE payment_status = 'Completed'
听起来像您需要的是独特的计数。 扔掉组,然后尝试以下方法:
SELECT
COUNT(DISTINCT user_id) AS total_donors
FROM
mytable
WHERE
payment_status = 'Completed'
对于结果3,将Count(user_id)
替换为Count(distinct user_id)
然后删除分组依据。
这样,您就可以得到付款状态为“已完成”的唯一user_id的计数。
因为您只对user_ID
的数量感兴趣,所以不需要使用GROUP BY
子句
SELECT COUNT(DISTINCT user_ID)
FROM tableName
WHERE payment_status = 'completed'
当您尝试添加GROUP BY
子句时。 结果与您期望的完全不同。
用这个:
SELECT COUNT(DISTINCT `user_id`) as `Total` FROM `Donation_Table`
WHERE `payment_status` = 'Completed'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.