每天计算唯一(不同)用户

the*_*ide 3 postgresql count distinct

我是新手,psql并且对计算每天唯一的首次用户数量很感兴趣。

我的表只有两列 - user_id(一个用户每天可以多次使用),start_time这是指示使用时间的时间戳。计数应仅包括当天 min(start_time) 下降的用户。

为什么以下查询不起作用?难道不能一次在两个变量上选择不同的吗?

SELECT COUNT (DISTINCT min(start_time::date), user_id), 
       start_time::date as date 
FROM mytable 
GROUP BY date
Run Code Online (Sandbox Code Playgroud)

产生

错误:函数count(date, integer)不存在

输出看起来像这样

        date count
1 2017-11-22    56
2 2017-11-23    73
3 2017-11-24    13
4 2017-11-25    91
5 2017-11-26   107
6 2017-11-27    33...
Run Code Online (Sandbox Code Playgroud)

关于如何计算不同的 min Date 和 user_id 然后在 psql 中按日期分组的任何建议将不胜感激。

Eva*_*oll 7

因为你的表格是关闭的,你想要的是

SELECT count(DISTINCT x)
FROM generate_series(1,10) AS gs(x);
Run Code Online (Sandbox Code Playgroud)

或者,就你而言,

SELECT start_time::date, count(DISTINCT user_id) 
FROM mytable 
GROUP BY start_time::date;
Run Code Online (Sandbox Code Playgroud)