我正在运行以下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查询?
答案 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