Postgresql计算返回用户字段的结果

时间:2016-09-28 09:33:57

标签: sql postgresql group-by

我正在运行以下postgres SQL查询:

SELECT user_id FROM user_log WHERE date>='2016-08-09' ORDER by user_id ASC

它返回结果并按user_id对它们进行分组,因此例如我可以从同一个user_id得到多个结果,如下例所示:

user_id
1001
1001
1001
1008
1008

而不是列出每个user_id,我想只计算每个user_id的结果数。因此,对于上面的示例,我想知道1001是3,而1008是2。

有没有办法直接使用SQL查询?

1 个答案:

答案 0 :(得分:1)

您可以尝试执行一个简单的GROUP BY查询,user_id确定您想要计算的组:

SELECT user_id, COUNT(*) AS userCount
FROM user_log
WHERE date>='2016-08-09'
GROUP BY user_id
ORDER by user_id ASC

例如,如果要限制只有至少3个计数的用户,则可以添加HAVING子句:

SELECT user_id, COUNT(*) AS userCount
FROM user_log
WHERE date>='2016-08-09'
GROUP BY user_id
HAVING COUNT(*) >= 3
ORDER by user_id ASC