我有一个包含以下一般结构的表,其中包含一个工作周的交易,每个交易都与一个卡ID相关联:
CardID----Time(timestamp)
1 2017-07-31 13:03:00
1 2017-08-03 14:00:01
1 2017-08-03 19:32:33
2 2017-08-01 09:09:09
2 2017-08-01 12:03:45
3 2017-08-02 15:31:00
4 2017-08-02 20:09:10
4 2017-08-04 10:38:12
5 2017-07-31 11:35:03
5 2017-08-01 11:30:12
5 2017-08-02 11:32:53
5 2017-08-03 11:43:31
5 2017-08-04 11:12:21
我正在寻找每个不同ID每天返回一个简单的活动列表,但具体日期并不重要,每天的实际交易次数也不重要。从本质上讲,代码应该返回如下内容:
DaysInWeek----#Cards
1 2
2 2
3 0
4 0
5 1
我目前的代码如下:
select distinct dow
,count(distinct id)
from (
select distinct id,
count(date_trunc('day', tiempo2)) as dow
from public.etapas
group by 1
)a
group by 1
然而,它返回89行DaysInWeek,范围从1到113.我对这个错误可能来自哪里感到迷茫,但怀疑它与date_trunc
和日期格式(时间戳)有关)。但是,当我运行一个只返回dow
的简单代码时,按预期只有5行。
答案 0 :(得分:0)
如果我理解正确,你似乎想要:
select numdays, count(*)
from (select id, count(distinct date_trunc('day', tiempo2)) as numdays
from public.etapas
group by id
) e
group by numdays
order by numdays;