这是我无法解决的问题。

我的问题是:

我需要选择一列的计数,但我还需要在同一列上使用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/

10-13 02:02