首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于在两种情况下捕获贡献的SQL代码

问用于在两种情况下捕获贡献的SQL代码
EN

Stack Overflow用户
提问于 2017-08-20 06:47:46
回答 1查看 34关注 0票数 0

以下代码给出了2016年3月1日至2017年2月28日期间向在线社区贡献标签的用户。

代码语言:javascript
复制
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日将不被计算)。

如何修改代码?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-20 07:18:30

您应该通过使用datediff function计算第一个和最后一个时间戳之间的天数差来获得您想要的结果,如下所示:

代码语言:javascript
复制
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;

Sample SQL Fiddle

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45776938

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档