这是我无法解决的问题。
我的问题是:
我需要选择一列的计数,但我还需要在同一列上使用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可以被挂起或完成不止一次,但是我希望查询返回3(基于上面的表格示例)。
因此,如果付款状态已完成,我希望查询COUNT GROUPED user_ids。
有想法吗?
最佳答案
您可以使用DISTINCT
关键字来选择唯一的用户ID,如下所示
"SELECT COUNT(DISTINCT user_id) AS total_donors
FROM " . DONATION_SECURITY_TABLE .
" WHERE payment_status = 'Completed'
关于php - 选择“COUNT”列和“GROUP BY”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12662099/