我正在尝试获取存在“ DID”的天数。我曾尝试通过&分区表进行分组,但无法弄清
详细来说,这是数据:
DID timestamp
a 2019-02-02 12:52:00
a 2019-02-03 13:23:00
a 2019-02-03 11:45:00
a 2019-02-04 15:21:00
b 2019-02-02 12:18:00
b 2019-02-02 13:54:00
b 2019-02-02 18:27:00
b 2019-02-05 19:31:00
a在2日发生一次,在3日发生两次,在4日发生一次,因此,总共'a'在3个日期出现4次
b在2日发生3次,在5日发生一次,因此在2个日期发生4次
我想要得到的是这样的输出:
DID presence_on_number_of_days
a 3
b 2
任何帮助将不胜感激!
答案 0 :(得分:1)
您可以使用date_trunc()
提取仅精确到当天的时间戳,并使用count()
提取DISTINCT
。这样,一天只计算一次(每个did
)。
SELECT did,
count(DISTINCT date_trunc('day', timestamp)) presence_on_number_of_days
FROM elbat
GROUP BY did;
答案 1 :(得分:1)
您需要计算不同的日期:
select DID, count(distinct timestamp::date) presence_on_number_of_days
from tablename
group by DID