目前,我在 Microsoft SQL Server 中有以下代码来获取连续两天查看的用户。
WITH uservideoviewvideo (date, user_id) AS (
SELECT DISTINCT date, user_id
FROM clickstream_videos
WHERE event_name ='video_play'
and user_id IS NOT NULL
)
SELECT currentday.date AS date,
COUNT(currentday.user_id) AS users_view_videos,
COUNT(nextday.user_id) AS users_view_next_day
FROM userviewvideo currentday
LEFT JOIN userviewvideo nextday
ON currentday.user_id = nextday.user_id AND DATEADD(DAY, 1,
currentday.date) = nextday.date
GROUP BY currentday.date
我试图让 DATEADD 函数在 PostgreSQL 中工作,但我一直无法弄清楚如何让它工作。有什么建议么?
我不认为 PostgreSQL 真的有 DATEADD 函数。相反,只需执行以下操作:
+ INTERVAL '1 day'
SQL服务器:
在当前日期上添加 1 天 2012 年 11 月 21 日
SELECT DATEADD(day, 1, GETDATE());
# 2012-11-22 17:22:01.423
PostgreSQL:
在当前日期上添加 1 天 2012 年 11 月 21 日
SELECT CURRENT_DATE + INTERVAL '1 day';
# 2012-11-22 17:22:01
SELECT CURRENT_DATE + 1;
# 2012-11-22 17:22:01
http://www.sqlines.com/postgresql/how-to/dateadd
EDIT:
如果您使用动态时间长度来创建字符串,然后将其转换为间隔,例如:
+ (col_days || ' days')::interval
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)