以下代码给出了2016年3月1日至2017年2月28日期间向在线社区贡献标签的用户。
SELECT userid, COUNT(*) AS tags
FROM tag_events
WHERE tstamp >= ‘2016-03-01’ AND tstamp <= ‘2017-03-01’
GROUP BY userid
ORDER BY tags DESC;tag_events是表,tstamp是标记的时间戳,userid是用户id,表中的每个条目都包含关于一个标记的信息。
我感兴趣的是那些在此期间第一次投稿至少在最后一次投稿前两个日历日的用户(所以7月1日和3日将被计算在内,7月1日和2日将被计算在内,但7月1日和2日将不被计算)。
如何修改代码?
发布于 2017-08-20 07:18:30
您应该通过使用datediff function计算第一个和最后一个时间戳之间的天数差来获得您想要的结果,如下所示:
SELECT userid, COUNT(*) AS tags
FROM tag_events
WHERE tstamp >= '2016-03-01' AND tstamp <= '2017-03-01'
GROUP BY userid
HAVING DATEDIFF(MAX(tstamp), MIN(tstamp)) > 1
ORDER BY tags DESC;https://stackoverflow.com/questions/45776938
复制相似问题